Description
Zeroconf is a pure Python implementation of multicast DNS service discovery. Prior to 0.149.16, _read_character_string and _read_string in src/zeroconf/_protocol/incoming.py advanced self.offset by attacker-declared RDLENGTH without checking it against self._data_len, allowing unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb) to send a TXT, HINFO, or A/AAAA record with rdlength=65535 and seed DNSCache and ServiceInfo.properties with truncated, attacker-shaped key/value or address records. This issue is fixed in version 0.149.16.
Published: 2026-07-17
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is in Zeroconf’s multicast DNS record payload readers. Prior to 0.149.16, the _read_character_string and _read_string methods increased an internal parsing offset by the attacker‑supplied rdlength field without verifying it against the actual payload length. An attacker on the same local network can send an unauthenticated UDP packet on port 5353 to the mDNS multicast address with txt, hinfo, or A/AAAA records that set rdlength to a large value (up to 65535). This causes the library to seed its DNSCache and ServiceInfo.properties with truncated or attacker‑crafted key/value or address records, leading to local cache corruption, misconfiguration, denial‑of‑service, or unintended behavior in applications that rely on Zeroconf. The flaw corresponds to a classic unchecked bounds check (CWE-120) and improper input validation (CWE-130).

Affected Systems

Any installation of the Python Zeroconf library older than version 0.149.16 is affected. This includes all programs that import python‑zeroconf for local service discovery, such as networked IoT devices, desktop helpers, or custom scripts that use its DNSCache or ServiceInfo structures, regardless of the operating system.

Risk and Exploitability

The weakness is local‑network only; an unauthenticated host can exploit it by sending a crafted UDP packet to the standard mDNS multicast address. With an EPSS score of less than 1 % and no listing in the CISA KEV catalog, the likelihood of widespread exploitation is low. However, the CVSS score of 5.3 indicates a moderate risk of denial of service or data integrity issues for affected systems. In a crowded LAN or a hostile environment, the impact could be amplified by repeated injection attempts.

Generated by OpenCVE AI on August 4, 2026 at 07:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Zeroconf package to version 0.149.16 or later, which removes the unchecked rdlength parsing bug.
  • Disable Zeroconf functionality in applications that do not require local service discovery, thereby eliminating the attack surface.
  • Configure local network firewall rules to block unsolicited UDP multicast traffic on port 5353, preventing malicious mDNS packets from reaching Zeroconf listeners.

Generated by OpenCVE AI on August 4, 2026 at 07:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-qc2x-6f54-m6h9 zeroconf: Unvalidated rdlength in record payload readers allows LAN-local cache corruption via crafted mDNS packet
History

Wed, 29 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}

threat_severity

Moderate


Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Python-zeroconf
Python-zeroconf python-zeroconf
Vendors & Products Python-zeroconf
Python-zeroconf python-zeroconf

Mon, 20 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 18:45:00 +0000

Type Values Removed Values Added
Description Zeroconf is a pure Python implementation of multicast DNS service discovery. Prior to 0.149.16, _read_character_string and _read_string in src/zeroconf/_protocol/incoming.py advanced self.offset by attacker-declared RDLENGTH without checking it against self._data_len, allowing unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb) to send a TXT, HINFO, or A/AAAA record with rdlength=65535 and seed DNSCache and ServiceInfo.properties with truncated, attacker-shaped key/value or address records. This issue is fixed in version 0.149.16.
Title Zeroconf: Unvalidated rdlength in record payload readers allows LAN-local cache corruption via crafted mDNS packet
Weaknesses CWE-130
References
Metrics cvssV4_0

{'score': 5.3, 'vector': 'CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Python-zeroconf Python-zeroconf
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-20T19:26:06.005Z

Reserved: 2026-05-21T15:33:08.291Z

Link: CVE-2026-48487

cve-icon Vulnrichment

Updated: 2026-07-20T19:25:55.762Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-17T18:28:21Z

Links: CVE-2026-48487 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T07:15:03Z

Weaknesses
  • CWE-120

    Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

  • CWE-130

    Improper Handling of Length Parameter Inconsistency