Record summary

CVE-2025-13943 has a selected CVSS score of 8.8 (high); EIP currently links 1 curated repository PoC.

Description

A post-authentication command injection vulnerability in the log file download function of the Zyxel EX3301-T0 firmware versions through 5.50(ABVY.7)C0 could allow an authenticated attacker to execute operating system (OS) commands on an affected device.

Description source: CVE List

Exploitation context

Available material

Curated repository PoCs
1

CISA SSVC decision

ExploitationNone
AutomatableNo
Technical impactTotal

CISA Coordinator · SSVC 2.0.3 · Evaluated Feb 25, 2026 · Source: CVE List

Affected products and versions

1
ProductSourceVersion rangeStatus

Default status: unaffected

CVE List<= 5.50(ABVY.7)C0affected

Proofs of concept

1

Curated repository PoCs

GitHubCVE-2025-13943Curated repository PoCby hacefreskoStars: 11Exploit4 files

Python · 182.7 KiB

GitHub

PoC details
Analysisdeepseek-v4-pro:cloud ·

Technical assessment

Python script (rce.py) that authenticates to a Zyxel router, starts a packet capture, injects a reverse shell command via an HTTP header, stops the capture, and triggers the vulnerable log export function to execute the injected command.

Backdoor review

No backdoor observed in reviewed code

The PoC consists of a README describing CVE-2025-13943 and a Python script (rce.py) that automates exploitation. The script performs authenticated command injection against a Zyxel router to establish a reverse shell. All actions are consistent with demonstrating the described vulnerability; no concealed, deceptive, or unrelated harmful behavior was observed.

ClassificationExploit
Model confidence98%
AuthenticationRequired
LanguagesPython
Target softwareZyxel zhttpd
Attack typesOS command injectionreverse shell
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The rce.py script performs all steps required to exploit the vulnerability: it authenticates, injects a malicious command into a packet capture, and triggers the vulnerable log export function to execute the command, resulting in a reverse shell. This is active exploitation, not just detection.

rce.py:1-126

Requirements

  • Valid credentials for the target device's web interface.rce.py:7-8
  • Target device must be running a vulnerable Zyxel firmware version with the zhttpd binary.README.md:3
  • Attacker must provide target IP/hostname and attacker IP as command-line arguments.rce.py:10-12

Observed behavior

  • Starts a netcat listener on the attacker machine to receive the reverse shell.rce.py:72-74
  • Authenticates to the target device using the provided credentials and obtains a session key.rce.py:86-102
  • Sends authenticated requests to start a packet capture on the target device.rce.py:108-110
  • Sends an HTTP request with a malicious header containing a reverse shell command to be captured by tcpdump.rce.py:112-113
  • Stops the packet capture and triggers the log export function, which causes the injected command to be executed via a system() call.rce.py:115-120
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Reverse Shell
Payload withheldThe script constructs a reverse shell command using the attacker-supplied IP and port, which is injected into the vulnerable endpoint to gain remote access. This is the intended exploit payload.rce.py:15
Command Injection
Payload withheldThe script injects the reverse shell command into an HTTP header, which is later executed by the vulnerable system() call in the target firmware. This matches the described vulnerability.rce.py:113
Listener
Payload withheldThe script starts a netcat listener on the attacker machine to receive the reverse shell connection. This is standard exploit behavior.rce.py:16rce.py:73-74
Review boundaries

What the analysis did not establish

  • Evidence includes two non-text media files (images) that were not analyzed; their content is described in the README but not directly inspected.
  • The analysis is based solely on the provided source code and documentation; the code was not executed, and its effectiveness is not verified.
  • Two non-text media files (images) totaling 176703 bytes were flagged as binary and not analyzed; they are referenced in the README as screenshots of the disassembly and PoC output.
  • The review is limited to the supplied text files; no dynamic analysis or execution was performed.
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.

References

2