
CVE-2026-11114 の PoC エクスプロイト。Proxy を介した Node.js vm サンドボックスエスケープを実証し、脆弱な HTTP /eval エンドポイントに対してリモートコード実行を達成します。
vm サンドボックスエスケープ(Proxy経由)// 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 サンドボックスエスケープ(Proxy経由)アプリケーションはNode.jsのvmモジュールを使用してサンドボックス内でユーザーコードを実行しますが、グローバルオブジェクトを適切に分離できていません。攻撃者はコンストラクタチェーン(例:this.constructor.constructor)にアクセスすることで、サンドボックスを脱出し、任意のシェルコマンドを実行できます。
vmコンテキストは、Node.jsのグローバルスコープ(process)へのアクセスを許可する組み込みコンストラクタへのアクセスを依然として提供します。npm install express
node sandbox_server.js
python exploit_vm_escape.py
出力にはidの結果が表示され、コマンド実行が証明されます。