CVE-2026-53921
Record summary
EIP currently links 2 repository PoCs to CVE-2026-53921.
Exploitation context
Available material
- Repository PoCs
- 2
Proofs of concept
2Repository PoCs
GitHub0xBlackash/CVE-2026-53921Repository PoCby 0xAshweskerStars: 2Scanner2 files
Analysis
Technical assessment
The artifact is a passive scanner that checks a target host for indicators of OpenWrt (HTTP banners, SSH banners, UDP port 547) to assess potential exposure to CVE-2026-53921. It explicitly states it never sends DHCPv6 packets and does not exploit the vulnerability.
Backdoor review
No backdoor observed in reviewed code
The repository contains a README describing CVE-2026-53921 and a Python script that performs passive reconnaissance (HTTP, SSH, UDP port check) to identify potential OpenWrt targets. The script sends only an empty UDP datagram to port 547 and explicitly avoids sending DHCPv6 packets. No backdoor, concealed executable, or operator-directed harm is observed.
Classification basis and observed behavior
Classification basis
The Python script is explicitly described as a 'Safe Passive Checker' that is '100% non-exploiting' and 'never sends DHCPv6 packets'. It only performs reconnaissance (HTTP, SSH, UDP port checks) to detect OpenWrt indicators, which is characteristic of a vulnerability scanner, not an exploit.
CVE-2026-53921-SafeCheck.py:3-5CVE-2026-53921-SafeCheck.py:178Requirements
- Target host or URL must be reachable over the network for HTTP, SSH, and UDP checks.
CVE-2026-53921-SafeCheck.py:96-98
Observed behavior
- Fetches HTTP/HTTPS banners and inspects page content for OpenWrt/LuCI indicators.
CVE-2026-53921-SafeCheck.py:47-68 - Retrieves SSH banner and checks for OpenWrt or Dropbear strings.
CVE-2026-53921-SafeCheck.py:70-77 - Sends an empty UDP datagram to port 547 to check if the port is open or filtered.
CVE-2026-53921-SafeCheck.py:79-92 - Reports whether the target is potentially vulnerable based on collected indicators, without sending any DHCPv6 packets.
CVE-2026-53921-SafeCheck.py:157-178
Behaviors behind the backdoor verdict
Observables
- Network Activity
- UDP empty datagram to target port 547The script sends an empty UDP payload to check if the DHCPv6 port is open, consistent with its stated passive checking purpose.
CVE-2026-53921-SafeCheck.py:83 - Network Activity
- HTTP/HTTPS GET requests to targetThe script fetches the target's web interface to identify OpenWrt/LuCI indicators, a standard reconnaissance technique.
CVE-2026-53921-SafeCheck.py:50 - Network Activity
- SSH banner retrievalThe script connects to port 22 to read the SSH banner, looking for Dropbear/OpenWrt strings.
CVE-2026-53921-SafeCheck.py:72-73
What the analysis did not establish
- The CVE record for CVE-2026-53921 was absent from the acquired CVEList, so the vulnerability description relies solely on the artifact's README.
- Only the two text files in the repository were reviewed; no binary or other files were present.
- The script's network requests could be used for reconnaissance in an attack chain, but the artifact itself contains no exploitation or backdoor code.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
GitHubtc4dy/CVE-2026-53921-PoC-ExploitRepository PoCby tc4dyStars: 6Exploit7 files
Analysis
Technical assessment
The artifact is a full weaponized exploit for CVE-2026-53921, a stack buffer overflow in OpenWrt's odhcpd DHCPv6 daemon. It includes exploit.py, which crafts malicious DHCPv6 packets with shellcode to achieve remote code execution as root, and a README.md describing the vulnerability and usage.
Backdoor review
No backdoor observed in reviewed code
The repository contains a disclosed exploit for CVE-2026-53921, a stack buffer overflow in OpenWrt's odhcpd. The exploit.py script sends crafted DHCPv6 packets to trigger the overflow and deliver shellcode (reverse or bind shell) to the target. It also includes post-exploitation features (persistence, log clearing) that act on the target. All behavior is consistent with the documented exploit functionality; no concealed or misrepresented actions targeting the operator or unrelated systems were found.
Classification basis and observed behavior
Classification basis
The artifact contains exploit.py, which is explicitly described as a 'Full weaponized exploit' in the README. The code constructs and sends malicious DHCPv6 packets with shellcode to trigger a stack buffer overflow and achieve remote code execution, which is the definition of an exploit.
README.md:178-181exploit.py:292-318exploit.py:515-567Requirements
- Attacker must have IPv6 connectivity to the target and the target must have UDP port 547 (DHCPv6) open.
README.md:88-97 - The target must be running a vulnerable version of odhcpd (before commit e432dd6) or OpenWrt (< 24.10.8 or < 25.12.5).
README.md:143-150 - The exploit script requires root privileges to craft raw IPv6 packets.
exploit.py:31-32
Observed behavior
- Sends crafted DHCPv6 Request packets containing 5 or more IA_NA options or 22 or more IA_PD options to overflow a 512-byte stack buffer in odhcpd.
exploit.py:292-318exploit.py:320-347 - Embeds architecture-specific shellcode (MIPS reverse/bind, ARM reverse/bind) into the overflow payload to execute arbitrary commands on the target.
exploit.py:79-128exploit.py:130-179exploit.py:181-233exploit.py:235-248 - Starts a listener to receive a reverse shell or connect to a bind shell after exploitation.
exploit.py:411-468 - Supports post-exploitation actions including installing a cron backdoor for persistence and clearing system logs.
exploit.py:470-504
Behaviors behind the backdoor verdict
Observables
- Shellcode
- MIPS and ARM reverse/bind shell shellcode embedded in exploit.pyThe shellcode is the disclosed payload for the CVE-2026-53921 exploit, intended to execute on the target device.
exploit.py:79-248 - Post-Exploitation
- Persistence installation and log clearing functions in exploit.pyThese functions (install_persistence, clear_logs) act on the exploited target via the established shell, consistent with the documented exploit features.
exploit.py:470-504
What the analysis did not establish
- The evidence packet does not include the verifier.py script mentioned in the README, only its description.
- The evidence packet does not include the binary file (53921.png) or other non-text files from the repository.
- The CVE record for CVE-2026-53921 was absent from the acquired CVEList V5 dataset.
- The CVE-2026-53921 record was absent from the acquired CVEList V5, so the exploit's claimed CVE association could not be independently verified.
- One non-text media file (53921.png) and three unclassified files were not inspected; they are unlikely to contain executable backdoor logic.
- The ARM shellcode appears to be placeholder/non-functional (e.g., arm_reverse_shell contains repetitive register moves without syscall instructions), but this does not constitute a backdoor.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.