
CVE-2026-11114에 대한 PoC 익스플로잇으로, Proxy를 통한 Node.js vm 샌드박스 탈출을 시연하여 취약한 HTTP /eval 엔드포인트에 대해 원격 코드 실행을 달성합니다.
vm 샌드박스 탈출// sandbox_server.js - Vulnerable VM sandbox
const vm = require('vm');
const express = require('express');
const app = express();
app.use(express.json());
app.post('/eval', (req, res) => {
const code = req.body.code;
const sandbox = { console: { log: () => {} } }; // limited sandbox
const script = new vm.Script(code);
const context = vm.createContext(sandbox);
try {
const result = script.runInContext(context);
res.send(String(result));
} catch(e) {
res.send(e.message);
}
});
app.listen(3000);
vm 샌드박스 탈출애플리케이션은 Node.js의 vm 모듈을 사용하여 샌드박스에서 사용자 코드를 실행하지만, 전역 객체를 제대로 격리하지 못합니다. 공격자는 생성자 체인(예: this.constructor.constructor)에 접근하여 샌드박스를 탈출하고 임의의 셸 명령을 실행할 수 있습니다.
vm 컨텍스트는 여전히 Node.js 전역 범위(process)에 대한 접근을 허용하는 내장 생성자에 대한 접근을 제공합니다.npm install express
node sandbox_server.js
python exploit_vm_escape.py
출력에는 id의 결과가 표시되어 명령 실행을 입증합니다.