You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -1332,9 +1332,40 @@ Replay in Repeater and test authorization, input validation and business logic o
1332
1332
- Requires `productionBrowserSourceMaps` enabled in production to recover names from bundles/source maps.
1333
1333
- Function-name disclosure is not a vulnerability by itself; use it to guide discovery and test each action’s authorization.
1334
1334
1335
+
### React Server Components Flight protocol deserialization RCE (CVE-2025-55182)
1336
+
1337
+
Next.js App Router deployments that expose Server Actions on `react-server-dom-webpack`**19.0.0–19.2.0 (Next.js 15.x/16.x)** contain a critical server-side prototype pollution during **Flight** chunk deserialization. By crafting `$` references inside a Flight payload an attacker can pivot from polluted prototypes to arbitrary JavaScript execution and then to OS command execution inside the Node.js process.
1.**Prototype pollution primitive:** Set `"then": "$1:__proto__:then"` so that the resolver writes a `then` function on `Object.prototype`. Any plain object processed afterwards becomes a thenable, letting the attacker influence async control flow inside RSC internals.
1346
+
2.**Rebinding to the global `Function` constructor:** Point `_response._formData.get` at `"$1:constructor:constructor"`. During resolution, `object.constructor` → `Object`, and `Object.constructor` → `Function`, so future calls to `_formData.get()` actually execute `Function(...)`.
1347
+
3.**Code execution via `_prefix`:** Place JavaScript source in `_response._prefix`. When the polluted `_formData.get` is invoked, the framework evaluates `Function(_prefix)(...)`, so the injected JS can run `require('child_process').exec()` or any other Node primitive.
0 commit comments