« Back to list

CVE-2026-66747

Status: DeferredCritical (9.3)—

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

Exploitation probability (EPSS)

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

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"
}