zeroconf has unbounded recursion in DNS compression-pointer decoder that allows LAN-local denial of service
Impact
DNSIncoming._decode_labels_at_offset recurses once per DNS-name compression pointer (RFC 1035 §4.1.4). Pointer cycles and label counts were capped, but the chain length of unique forward pointers was not. A single ~3 kB mDNS packet carrying ~1500 chained pointers drives the recursion past CPython's default limit, and RecursionError was not listed in DECODE_EXCEPTIONS, so it escaped DNSIncoming.__init__ and was logged by asyncio's default exception handler.
Any unauthenticated host on the local link (UDP/5353, 224.0.0.251 / ff02::fb) can degrade the mDNS listener; that includes a guest on the same Wi-Fi, a compromised IoT device, or a container on a shared bridge. Replaying at a few hertz produces sustained CPU burn and log flooding, and mDNS-dependent features (HomeKit, Chromecast/Matter, AirPlay, printers) degrade while the attack is in flight.
Patches
Fixed in zeroconf 0.149.5 (PR #1719).
Upgrade to >= 0.149.5.
Workarounds
There is no in-process workaround; upgrading is the fix. Otherwise, restrict mDNS (UDP/5353) to trusted Layer-2 segments via AP client isolation, guest-network separation, or host firewall rules.
Resources
- PR #1719, fix
- Issue #1713, public tracking issue
- RFC 1035 §4.1.4, RFC 6762, CWE-674
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | zeroconf | < 0.149.5 | 0.149.5 |
References
- https://github.com/python-zeroconf/python-zeroconf/security/advisories/GHSA-9pgc-3ccv-5297
- https://github.com/python-zeroconf/python-zeroconf/issues/1713
- https://github.com/python-zeroconf/python-zeroconf/pull/1719
- https://github.com/python-zeroconf/python-zeroconf
- https://pypi.org/project/zeroconf
- https://github.com/advisories/GHSA-9pgc-3ccv-5297
- https://nvd.nist.gov/vuln/detail/CVE-2026-47180
- CVSS vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H- Weakness (CWE)
CWE-674- Platform
- Python (PyPI)
- Package
zeroconf- Disclosed
- 29.05.2026
- Updated
- 11.10.2026 14:18
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-3436 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-9pgc-3ccv-5297 - CC BY 4.0
Vulnerability history: zeroconf
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 5
- First → latest
- 05.2026 06.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Medium 5
Disclosures per year
- 2026: 5
-
zeroconf has unbounded recursion in DNS compression-pointer decoder that allows LAN-local denial of service this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.