Answering one hardcoded address gives you root on 20+ Zbtlink router models
VulnCheck's ENDLESSDOORS ships enabled on more than 20 Zbtlink models and runs as root from boot, and because it opens no port at all, the check that would have caught it has to happen on the firmware image.
The Engineer · Build desk

What happened
- VulnCheck disclosed ENDLESSDOORS, tracked as CVE-2026-66747, a remote-control implant found in the firmware of more than 20 Zbtlink router models and giving unauthenticated root code execution.
- The implant is enabled by default, starts at boot and runs as root, so no misconfiguration or exposed management interface is needed to bring it into play.
- It opens no listening port; instead it dials a hardcoded C2 server outbound over cleartext TCP, with no authentication and no transport encryption on the channel.
- VulnCheck says that because the channel is unauthenticated, anyone who answers at the C2 address or who can occupy the network path to it gets root command execution on the router.
Why it matters
- What it limits constraint A clean port scan cannot clear a device whose implant never listens, so the assurance work moves to whoever handles the firmware image before the unit is racked.
- Who's exposed exposure An upstream provider, or whoever ends up holding that hardcoded address, sits inside the customer's trust boundary by default, needing no action of their own and generating no signal the customer would see.
- What it costs cost Using the shipped network rules means paying for a tap between the router and the WAN link, because the implanted box is itself the egress point and a LAN-side sensor never sees the call home.
- Who has to decide decision Anyone buying commodity perimeter hardware now has to decide whether image inspection belongs in acceptance testing, which lands the cost on procurement lead times rather than on the detection backlog.
Testing a unit for this means becoming the thing it calls. Put the router on a bench network, answer for the hardcoded destination, and watch whether root commands land. That is precisely the position VulnCheck's exploit takes, alongside the PCAP, Nuclei template, ASM queries and Snort, Suricata and YARA rules in the coverage package [5]. It is a procedure involving a cable and a socket, not a query you run against an asset inventory.
Which makes the missing list the operational problem. The bulletin gives a count, more than 20 models, and not an enumeration of them [1][14]. Until models and firmware builds are named, an operator with a mixed fleet has no filter to apply, and no scan that would supply one.
Notice what the same bulletin can count. VulnCheck's Target Intelligence puts 7,100-plus exposed vulnerable Ruby on Rails instances on the board [6] and roughly 1,115 internet-exposed vCenter servers [7]. For the Zbtlink fleet there is no exposure figure at all [13]. That follows from the mechanism rather than from any gap in the tooling: both of those numbers come from finding things that listen, and this implant originates the connection instead [3].
The rest of the week's list is inbound work by comparison. The Rails Active Storage bug is an unauthenticated file read to RCE [8]. One vCenter flaw lets an attacker with network access sign in as full administrator [9]; the other lets an unauthenticated attacker plant a file that runs as root [10]. The SMB escalation needs any valid user credential [11]. So four of the five require no credentials [15], and three of those four are reached by connecting to the target. The fourth is reached by answering when the target calls you.
That is why the acceptance test has to read the image, and reading is not the same as checking a signature. A signature tells you the firmware is the vendor's build; here the default-on root process is in the vendor's build [1][2]. The check that catches it is extraction and inspection: enumerate what init starts, note what runs as root, then boot the image on an isolated network and record what it dials [2][3]. Slow, and it needs someone who can read a squashfs.
In my context that is still the cheaper half of the problem, because I can put a gate in procurement and I cannot put a sensor on the transit path between a branch router and an address in somebody else's netblock. If your leverage runs the other way, invert the priority. The thing not to do is treat a clean port scan as evidence, because on this device a clean port scan is the expected result [3].
What to watch
- Publication of the affected Zbtlink model and firmware-build list, which is what would turn this from a bench test into an inventory query.
- Any report of someone other than the original operator answering at the hardcoded C2 address or taking the path position VulnCheck's exploit uses.
- Whether Zbtlink issues firmware without the default-on root process, and how customers are expected to verify that it is gone.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence58
- Adoption32
- Hype gap+18
- Incentives74
- Confidence52
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
VulnCheck disclosed ENDLESSDOORS, a remote-control implant in the firmware of 20+ Zbtlink router models, tracked as CVE-2026-66747, Zbtlink Router ENDLESSDOORS Implant Unauthenticated Root Code Execution.
- [2]
The ENDLESSDOORS implant is enabled by default, starts at boot, and runs as root.
- [3]
Unlike a conventional remote vulnerability, ENDLESSDOORS opens no listening port; it is a fully outbound phone-home implant that dials a hardcoded C2 server over cleartext TCP with no authentication and no transport encryption.
- [4]
Because the channel is unauthenticated and cleartext, control is not limited to whoever planted the implant: anyone who answers at the C2 address, or who can occupy the network path between the router and that address, obtains root command execution on the device.
- [5]
VulnCheck created an exploit that takes the C2 / adversary-in-the-middle position; coverage also includes a PCAP, a Nuclei template for non-intrusive scanning, ASM queries, and Snort, Suricata and YARA rules.
- [6]
VulnCheck Target Intelligence identifies 7,100+ exposed vulnerable instances of Ruby on Rails in connection with CVE-2026-66066.
- [7]
VulnCheck Target Intelligence currently identifies roughly 1,115 internet-exposed vCenter servers.
- [8]
CVE-2026-66066 is a critical unauthenticated file-read-to-RCE vulnerability in Ruby on Rails Active Storage, discovered by Ethiack and nicknamed KindaRails2Shell.
- [9]
CVE-2026-59309 is a critical authentication bypass in VMware vCenter Server's built-in directory service; a weakness in how it checks passwords lets an attacker with network access sign in as a full administrator.
- [10]
CVE-2026-59310 is a critical vCenter Server flaw in how the appliance records log messages it receives, letting an attacker on the network with no username or password plant a malicious file that runs automatically as the root system account.
- [11]
CVE-2026-26128 is a privilege escalation in Microsoft Windows SMB services; the exploit enables an attacker with any user credentials to gain NT AUTHORITY/SYSTEM on domain-connected systems where those credentials are valid.
- [12]
The VulnCheck Initial Access Intelligence bulletin containing the ENDLESSDOORS coverage is dated 7 August 2026 and states the disclosure happened earlier that week.
- [13]
The bulletin publishes internet-exposure counts for the Rails and vCenter items but gives no exposure figure for the affected Zbtlink routers.
- [14]
For the Zbtlink item the bulletin states a model count (20+) and does not list the affected models.
- [15]
Four of the five flaws covered in the bulletin require no valid credentials; only the SMB escalation requires an existing user credential.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- New exploits and detections for backdoored Zbtlink routers, Ruby on Rails, vCenter Server x2, Microsoft Windows x2, and more.
docs.vulncheck.com
1 article · August 31, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.