{"uuid": "2efa21f7-5454-4f82-924b-0a2f57627b04", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2025-55182", "type": "published-proof-of-concept", "source": "https://t.me/cyberwarehouse/1015", "content": "React RCE: \u043f\u0440\u0443\u0444 \u0441 \u043d\u0443\u043b\u044f, \u0431\u0435\u0437 \u00ab\u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432\u00bb\n\n\u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u044f\u0441\u043d\u043e\u0432\u0438\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445 \u0437\u0430\u044f\u0432\u0438\u043b, \u0447\u0442\u043e poc \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u00ab\u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u044b\u0440\u044f\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435\u00bb \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u00ab\u044d\u0442\u043e \u043d\u0435 \u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443\u00bb.  \n\u044f \u043f\u043e\u0448\u0451\u043b, \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u0434\u0432\u0430 \u0447\u0430\u0441\u0430, \u0441\u043e\u0431\u0440\u0430\u043b \u0432\u0441\u0451 \u0441 \u0447\u0438\u0441\u0442\u043e\u0433\u043e react \u2014 \u0438 \u0432\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\n\nrce \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 react 19.2.0, \u0431\u0435\u0437 \u043f\u0430\u0442\u0447\u0435\u0439 \u0438 \u043f\u043b\u044f\u0441\u043e\u043a \u0441 \u0431\u0443\u0431\u043d\u043e\u043c.\n\u043d\u0438\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439.\n\n1) \u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438\n\ngit clone https://github.com/facebook/react.git\ncd react\ngit checkout v19.2.0\n\n2) \u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c react-server-dom-webpack\n\nyarn install\nyarn build react-server-dom-webpack\n\n\u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0439 \u0431\u0430\u043d\u0434\u043b \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438:\n\nbuild/oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js\n\n3) \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 poc-server.js\n\n\u043a\u043b\u0430\u0434\u0451\u043c \u0444\u0430\u0439\u043b CVE-2025-55182_vuln_server.js \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u0440\u0435\u043f\u043e react:\n\nhttps://gist.github.com/ghe770mvp/ebd40f33ec4ed080e603fda3ec20734e\n\n4) \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\n\n\u0432 \u043a\u043e\u0434\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440: \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e react-server-dom-webpack, \u0440\u0443\u043a\u0430\u043c\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e serverManifest \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u0433\u0430\u0434\u0436\u0435\u0442\u043e\u043c (vm.runInThisContext) \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e, \u0447\u0442\u043e \u043e\u0434\u043d\u0438\u043c HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0447\u0435\u0440\u0435\u0437 decodeAction \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434.\n\u044d\u0442\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u0445  \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0430\u0448\u0438 use server \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u0430\u043c \u043d\u0430\u0434\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u0441\u043a\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0433\u0430\u0434\u0436\u0435\u0442\u044b \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0447\u0435\u0440\u0435\u0437 manifest.\nnode --conditions react-server --conditions webpack CVE-2025-55182_vuln_server.js\n\n\u0432\u0438\u0434\u0438\u043c:\n\nvuln server on http://localhost:3002\n5) \u0441\u0442\u0440\u0435\u043b\u044f\u0435\u043c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442\u043e\u043c \n\n\ud83d\udd2b\ud83e\udd2c\ud83d\udd2b\n\nnode exploit-rce-v4.js\n\n\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 (\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f windows):\n\nTest 2: vm.runInThisContext with require\nRCE attempt: {\"success\":true,\"result\":\"\\\\\\r\\n\"}\n\n\u044d\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 child_process.execSync(\"whoami\"), \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 decodeAction \u0438\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0433\u043e \u0431\u0430\u043d\u0434\u043b\u0430 19.2.0.\n\n\u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u041d\u0415 \u00ab\u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0434\u044b\u0440\u044f\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u00bb\n\n- \u0432\u0435\u0440\u0441\u0438\u044f: \u0447\u0435\u0442\u043a\u0438\u0439 git checkout v19.2.0, \u0431\u0435\u0437 \u043f\u0440\u0430\u0432\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u0438 \u0431\u0435\u0437 \u043f\u0430\u0442\u0447\u0435\u0439;\n    \n- \u0431\u0430\u043d\u0434\u043b: \u0431\u0435\u0440\u0451\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u0438\u0437 build/oss-stable/...react-server-dom-webpack-server.node.development.js, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 yarn build react-server-dom-webpack;\n    \n- \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442: \u0434\u0430\u0451\u043c vm.runInThisContext, \u0438 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 hasOwnProperty-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 payload \u0447\u0435\u0440\u0435\u0437 $ACTION_* \u043f\u0440\u043e\u043b\u0430\u043c\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u0434.\n    \n\n\u0438\u0442\u043e\u0433 \u043f\u0440\u043e\u0441\u0442\u043e\u0439:  \nreact rsc rce \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0442\u0440\u0430\u0448\u0438\u043b\u043a\u0430, \u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0435\u043b\u043b \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0438\u0437 POST \u0437\u0430\u043f\u0440\u043e\u0441\u0430.\n\n\n\u0445\u043e\u0447\u0435\u0448\u044c \u0441\u043f\u043e\u0440\u0438\u0442\u044c \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u0438 \u0448\u0430\u0433\u0438, \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043f\u0438\u0448\u0438 \u0441\u0432\u043e\u0435 \u00ab\u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u043e\u0435\u00bb \u043c\u043d\u0435\u043d\u0438\u0435. \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u0435 \u0443\u0440\u043e\u043a\u043e\u043c \u0442\u043e\u0436\u0435 :)\n\n\ud83d\udc7e", "creation_timestamp": "2026-07-27T00:00:33.359480Z"}