CVE-2026-66747
Zbtlink router firmware ships an embedded remote-control implant, ENDLESSDOORS, present in every published build across the product line. It is the open-source ycsunjane/rctl tool built in as an OpenWrt package (librctl.so), started at boot and run as root under the process name kworker to blend in with the kernel's [kworker/*] threads. It opens no listening port; it phones home over cleartext TCP to a hardcoded command-and-control server (command channel 7000, interactive-shell callback 7001) with no authentication and no transport encryption, re-attempting contact roughly every 35 seconds.
Read full descriptionShow less
Its command handler passes any received string to popen() as uid=0, and a reserved rctlbash command returns an interactive root shell. Because the channel is unauthenticated and cleartext, control is not limited to whoever planted it: any party that answers at the C2 address, occupies the network path (DNS or route hijack), or acquires the hardcoded fallback domain obtains unauthenticated remote code execution as root.
CVSS
- Version: 4.0
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- Base score: 9.3
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days: 0.79%
- Percentile among all scored CVEs: 55
- Score date: 10/1/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
Affected technologies (2)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
CWEs
- CWE-506
References
Raw JSON (NVD)
Show
{
"id": "CVE-2026-66747",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-66747",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-08-05T14:19:25.533200Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "disclosure@vulncheck.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 9.8,
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.9,
"exploitabilityScore": 3.9
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "disclosure@vulncheck.com",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 9.3,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "HIGH",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "disclosure@vulncheck.com",
"affectedData": [
{
"cpes": [
"cpe:2.3:o:zbtlink:cpe2801_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "CPE2801 Firmware",
"versions": [
{
"status": "affected",
"version": "22.10.09",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we1026-5g-wd_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE1026-5G-WD Firmware",
"versions": [
{
"status": "affected",
"version": "21.04.07",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we1326_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE1326 Firmware",
"versions": [
{
"status": "affected",
"version": "22.02.18_1",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we2007_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE2007 Firmware",
"versions": [
{
"status": "affected",
"version": "23.08.12",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we2008-dsim_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE2008-DSIM Firmware",
"versions": [
{
"status": "affected",
"version": "23.08.11",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we2416_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE2416 Firmware",
"versions": [
{
"status": "affected",
"version": "21.03.22_1",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we3326_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE3326 Firmware",
"versions": [
{
"status": "affected",
"version": "20.09.30",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we5927_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE5927 Firmware",
"versions": [
{
"status": "affected",
"version": "22.08.10",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we5931_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE5931 Firmware",
"versions": [
{
"status": "affected",
"version": "22.05.31",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we5931ac_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE5931AC Firmware",
"versions": [
{
"status": "affected",
"version": "22.05.31",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:we826-t3-dsim_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WE826-T3-DSIM Firmware",
"versions": [
{
"status": "affected",
"version": "21.12.21",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg108_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG108 Firmware",
"versions": [
{
"status": "affected",
"version": "21.08.06_1",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg209_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG209 Firmware",
"versions": [
{
"status": "affected",
"version": "21.07.28",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg259_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG259 Firmware",
"versions": [
{
"status": "affected",
"version": "21.03.23",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg1602_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG1602 Firmware",
"versions": [
{
"status": "affected",
"version": "23.10.11",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg1608-dsim_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG1608-DSIM Firmware",
"versions": [
{
"status": "affected",
"version": "23.03.16",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg2105_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG2105 Firmware",
"versions": [
{
"status": "affected",
"version": "22.05.30",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg2107_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG2107 Firmware",
"versions": [
{
"status": "affected",
"version": "22.09.08",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:wg3526_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "WG3526 Firmware",
"versions": [
{
"status": "affected",
"version": "22.11.01",
"versionType": "custom"
}
],
"platforms": [
"MIPS",
"ARM"
],
"defaultStatus": "unaffected"
},
{
"cpes": [
"cpe:2.3:o:zbtlink:z8102ax_firmware:*:*:*:*:*:*:*:*"
],
"vendor": "Zbtlink",
"product": "ZBT-Z8102AX-2SIM Firmware",
"versions": [
{
"status": "affected",
"version": "7.6.7.2-25.0814_114432",
"versionType": "custom"
}
],
"platforms": [
"ARM"
],
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-08-05T11:16:25.510",
"references": [
{
"url": "https://github.com/ycsunjane/rctl",
"source": "disclosure@vulncheck.com"
},
{
"url": "https://www.vulncheck.com/advisories/zbt-endlessdoors",
"source": "disclosure@vulncheck.com"
},
{
"url": "https://www.vulncheck.com/blog/zbt-endlessdoors",
"source": "disclosure@vulncheck.com"
},
{
"url": "https://www.zbtlink.com/pages/zbt-router-firmware-download",
"source": "disclosure@vulncheck.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "disclosure@vulncheck.com",
"description": [
{
"lang": "en",
"value": "CWE-506"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Zbtlink router firmware ships an embedded remote-control implant, ENDLESSDOORS, present in every published build across the product line. It is the open-source ycsunjane/rctl tool built in as an OpenWrt package (librctl.so), started at boot and run as root under the process name kworker to blend in with the kernel's [kworker/*] threads. It opens no listening port; it phones home over cleartext TCP to a hardcoded command-and-control server (command channel 7000, interactive-shell callback 7001) with no authentication and no transport encryption, re-attempting contact roughly every 35 seconds. Its command handler passes any received string to popen() as uid=0, and a reserved rctlbash command returns an interactive root shell. Because the channel is unauthenticated and cleartext, control is not limited to whoever planted it: any party that answers at the C2 address, occupies the network path (DNS or route hijack), or acquires the hardcoded fallback domain obtains unauthenticated remote code execution as root."
}
],
"lastModified": "2026-09-09T20:35:08.537",
"sourceIdentifier": "disclosure@vulncheck.com"
}