Node.js 模块 node-serialize 反序列化任意代码执行漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

原文链接:[Exploiting Node.js deserialization bug for Remote Code Execution](https://www.exploit-db.com/docs/41289.pdf) 有增改 原作者:**Ajin Abraham** 译:**Holic (知道创宇404安全实验室)** ### tl;dr 若不可信的数据传入 `unserialize()` 函数,通过传递立即调用函数表达式(IIFE)的 JavaScript 对象可以实现任意代码执行。 ### 漏洞详情 审计 Node.js 代码时,我正好看到一个名为 node-serialize 的序列号/反序列化模块。下面是一段代码示例,来自网络请求的 cookie 会传递到该模块的 unserialize() 函数中。 ```javascript var express = require('express'); var cookieParser = require('cookie-parser'); var escape = require('escape-html'); var serialize = require('node-serialize'); var app = express(); app.use(cookieParser()) app.get('/', function(req, res) { if (req.cookies.profile) { var str = new Buffer(req.cookies.profile, 'base64').toString(); var obj = serialize.unserialize(str); if (obj.username) { res.send("Hello " + escape(obj.username)); } } else { res.cookie('profile', "eyJ1c2VybmFtZSI6ImFqaW4iLCJjb3VudHJ5IjoiaW5kaWEiLCJjaXR5IjoiYmFuZ2Fsb3JlIn0=", { maxAge: 900000, httpOnly: true }); } res.send("Hello World"); });...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息