PoC files

11 files

File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.

GitHub

Analysisdeepseek-v4-pro:cloud ·

Technical assessment

The artifact contains a Python script (poc-cve-2025-55182.py) that sends a crafted React Flight payload to a target Next.js server to achieve unauthenticated remote code execution (RCE) by exploiting unsafe deserialization in React Server Components (CVE-2025-55182). The README documents the script's usage and shows successful command execution output.

Backdoor review

No backdoor observed in reviewed code

The reviewed evidence consists of a README and a Python PoC script (poc-cve-2025-55182.py) that demonstrate exploitation of CVE-2025-55182, a React Server Components deserialization vulnerability. The script sends a crafted multipart request to trigger remote code execution via a NEXT_REDIRECT error digest. All behavior is consistent with the stated purpose of demonstrating the CVE; no concealed backdoor, unrelated payload, persistence mechanism, or operator-directed harm beyond the declared exploit is present.

ClassificationExploit
Model confidence100%
AuthenticationNot required
LanguagesPython
Target softwareNext.jsReact Server Components
Attack typesRemote Code ExecutionDeserialization of Untrusted Data
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The primary artifact is the Python script poc-cve-2025-55182.py, which is explicitly designed to send a malicious payload to a vulnerable server to execute arbitrary commands. This constitutes exploit code as it exercises the vulnerability to achieve remote code execution, not merely detecting or reporting it.

poc-cve-2025-55182.py:1-9poc-cve-2025-55182.py:29-58README.md:134-136

Requirements

  • Target must be running a vulnerable version of Next.js with React Server Components (19.0.0, 19.1.0, 19.1.1, 19.2.0) and have a Server Function endpoint accessible.README.md:9-11poc-cve-2025-55182.py:5

Observed behavior

  • The script constructs a multipart form-data payload containing a crafted JSON object that exploits React Flight deserialization to execute an arbitrary shell command via Node.js child_process.execSync.poc-cve-2025-55182.py:29-58
  • The payload is sent as a POST request to the target URL with a 'Next-Action: x' header, triggering the Server Action endpoint.poc-cve-2025-55182.py:117-129
  • The script extracts the command output from the 'digest' field of the server's error response body, confirming successful remote code execution.poc-cve-2025-55182.py:61-71poc-cve-2025-55182.py:139-142
  • The README shows example runs of the exploit script executing 'uname -a', 'whoami', and 'id' on a Docker container, returning the command output.README.md:143-183
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Exploit Payload
JavaScript code injected via _prefix field to execute child_process.execSync and throw NEXT_REDIRECT with command output in digestThis is the core exploit mechanism for CVE-2025-55182, matching the described vulnerability.poc-cve-2025-55182.py:40-44
Command Execution
Commands such as 'uname -a', 'whoami', 'id' are executed on the target and output is extracted from the responseDemonstrates the RCE impact of the CVE; no evidence of commands being executed for unrelated purposes.README.md:143-183
Review boundaries

What the analysis did not establish

  • Only two of eleven repository files were provided as text; the remaining nine files (including middleware.js, Dockerfile, and NextJs.py) are omitted, so the full laboratory setup and the passive scanner script cannot be analyzed.
  • The evidence does not include the actual execution of the exploit; the README output is presented as documentation, not as a verified runtime trace.
  • Only two of eleven repository files were provided as readable text; nine files (including Dockerfile, package.json, middleware.js, and app route files) are present only as metadata and were not reviewed.
  • Binary analysis was not performed; the evidence policy states binary files are flagged metadata-only and not analyzed.
  • The review is limited to static analysis of the supplied text; no dynamic execution or network behavior was observed.
Model interpretation

This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.

Docker lab environments

1
GitHub

nextjs-vuln

Created
Vuln labCVE-2025-55182Dockerfile

1 Dockerfile

Analysisdeepseek-v4-pro:cloud ·

Environment assessment

A Dockerized Next.js 15.0.3 application with middleware protecting /protected and /api/admin/* routes, intended as a vulnerability lab for CVE-2025-55182.

nextjs-vuln/Dockerfile:1-13nextjs-vuln/middleware.js:1-28README.md:1-10

Lab assessment

Vulnerability lab

The README explicitly states the repository is a laboratory and PoC analysis for CVE-2025-55182, and the middleware implements authorization checks that can be bypassed with a specific header, matching the described vulnerability.

README.md:1-10nextjs-vuln/middleware.js:1-28
Lab shapeDockerfile
ServicesUnknown
Compose manifests0
Dockerfiles1
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

nextjs-vuln Docker image

vulnerable target application

A Node.js 20 Alpine-based container running a Next.js 15.0.3 dev server on port 3000. It serves a home page, a protected page, and a secret API route, with middleware enforcing access control.

nextjs-vuln/Dockerfile:1-13nextjs-vuln/package.json:1-14nextjs-vuln/middleware.js:1-28

middleware.js

authorization enforcementvulnerable component

Next.js middleware that returns 403 for requests to /protected and /api/admin/* unless the x-middleware-subrequest header is set to '1', allowing bypass.

nextjs-vuln/middleware.js:1-28

PoC scripts (NextJs.py, poc-cve-2025-55182.py)

exploit demonstrationvulnerability verification

Python scripts referenced in the README that probe for React2Shell vulnerability and achieve unauthenticated remote code execution on the target container. The scripts are not included in the evidence packet.

README.md:80-180
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2025-55182

Supported by supplied evidence

The README describes the lab as a PoC for CVE-2025-55182, and the middleware bypass behavior (x-middleware-subrequest) matches the described attack vector. The README also shows successful RCE via a crafted Flight payload, consistent with the React2Shell vulnerability.

README.md:1-10README.md:30-50README.md:80-180
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • Docker must be installed to build and run the container.README.md:60-65
  • The target Next.js application must be running and accessible on port 3000.README.md:60-65README.md:80-85
  • The attacker must be able to send HTTP requests to the target, including custom headers (x-middleware-subrequest) and crafted Flight payloads.README.md:30-50README.md:80-180

Evidence-described exercise path

  1. Build the Docker image from the provided Dockerfile.README.md:60-62
  2. Run the container, exposing port 3000.README.md:63-65
  3. Send a normal request to a protected route (e.g., /protected) and observe a 403 Forbidden response.README.md:30-35
  4. Send a request with the header x-middleware-subrequest: 1 to bypass middleware and access the protected route.README.md:36-45
  5. Use the provided PoC script (poc-cve-2025-55182.py) to achieve remote code execution on the container by sending a crafted Flight payload.README.md:80-180
Safety-review evidence

Behaviors behind the stored safety assessment

No harmful behavior observed

All visible behavior is directed at the lab's own target container. The Dockerfile does not mount the Docker socket, use privileged mode, or expose host filesystems. The PoC scripts achieve RCE inside the container, which is the intended demonstration of the vulnerability. No evidence of host escape, persistence, credential theft, or external communication is present.

nextjs-vuln/Dockerfile:1-13README.md:80-180
Review boundaries

What the analysis did not establish

  • The PoC scripts (NextJs.py, poc-cve-2025-55182.py) are referenced but not included in the evidence packet; their exact behavior cannot be verified.
  • The package-lock.json is referenced in the Dockerfile but not included in the evidence, so exact dependency versions are unknown.
  • The README shows RCE output as root, but the Dockerfile uses node:20-alpine which runs as root by default; this is a lab configuration choice, not necessarily malicious.
Model interpretation

This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.

Linked vulnerabilities

2