Avahi
CVE-2025-59529
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local shell as unprivileged user
-
DeliveryConnect repeatedly to avahi-daemon unix socket
-
ExploitBypass unenforced CLIENTS_MAX limit
-
ExecutionExhaust daemon file descriptors and memory
-
ImpactSystem-wide mDNS/DNS-SD resolution denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an unprivileged local account with access to the simple-protocol unix socket /run/avahi-daemon/socket on a host running avahi-daemon (versions up to and including 0.9-rc2); no authentication beyond local socket access and no user interaction are needed. The flaw cannot be mitigated by configuration because avahi-daemon provides no option to disable that socket, though exploitation is LIMITED to local users and can be constrained by post-start socket permission changes or SELinux restrictions. It is NOT remotely exploitable, and resolution requests arriving via DBus - including avahi-resolve, avahi-resolve-address, and avahi-resolve-host-name - are not directly affected, narrowing real-world impact to the socket-based simple-protocol path. |
| Impact | This is a genuine but moderate-priority issue, and the available signals are consistent rather than conflicting. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 5.5 MEDIUM) accurately reflects a local, low-complexity, low-privilege availability-only flaw: no confidentiality or integrity impact, and the attacker must already have a local account with access to the /run/avahi-daemon/socket unix socket. EPSS is low at 0.18% (7th percentile), which aligns with the local-only attack vector - this is not a remotely mass-exploitable bug, so low internet-facing exploitation probability is expected and not a contradiction. The vulnerability is NOT in CISA KEV, so there is no evidence of active exploitation; exploitation status is 'publicly available exploit code exists' (a POC/writeup is referenced via the GitHub Security Advisory GHSA-73wf-3xmj-x82q and the zeropath.com analysis), which must NOT be conflated with in-the-wild exploitation. No SSVC decision record was supplied. The root cause is confirmed by source code: server_work() unconditionally accept()s and client_new() always increments n_clients with no enforcement of CLIENTS_MAX (CWE-400 resource exhaustion). Net assessment: a real, easily-triggered local denial-of-service that degrades a widely-deployed system service, but low urgency for internet-exposed threat models because it cannot be reached remotely and has no data-impact - patch on normal maintenance cadence, prioritizing multi-user and shared Linux hosts. |
| Exploit ScenarioDerived | An unprivileged local user on a multi-user Linux host writes a short loop that repeatedly connects to the avahi-daemon simple-protocol unix socket (/run/avahi-daemon/socket) without ever hitting the intended 50-client limit. Because every connection is accepted and counted without bound, the daemon exhausts its file descriptors and memory, and each failed accept() also floods the system log, degrading the whole host. A public POC/advisory exists, and since the CVSS vector is AV:L/AC:L, the attack is trivial to script and requires no special timing or user interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Unprivileged local users on hosts running the Avahi daemon (versions up to and including 0.9-rc2) can open an unbounded number of connections to the simple-protocol unix socket, exhausting daemon memory and file descriptors and causing a system-wide denial of service for mDNS/DNS-SD resolution. Although the daemon defines CLIENTS_MAX, that limit is never enforced - the accept loop and client-registration path unconditionally admit every new client - so sustained connection attempts also flood the log with per-connection errors and drive up system load. Publicly available exploit code exists and is referenced in the GitHub security advisory and public write-ups, but the vulnerability is not confirmed actively exploited (not in CISA KEV), is strictly local in scope, and carries a low EPSS score of 0.18% (7th percentile), making it a genuine but moderate-priority availability issue rather than a remote or worm-style threat.
RemediationAI
No released patched version had been published at the time of analysis, so the primary remediation is to track the vendor advisory at https://github.com/avahi/avahi/security/advisories/GHSA-73wf-3xmj-x82q and upgrade as soon as a distribution or upstream release incorporating pull request 808 (https://github.com/avahi/avahi/pull/808) becomes available; upstream fix available (PR/commit), released patched version not independently confirmed. Because the daemon offers no configuration switch to disable the simple-protocol unix socket /run/avahi-daemon/socket, administrators should apply compensating controls: after avahi-daemon starts, tighten the socket's permissions (for example restricting it to root only or to a trusted group) so that untrusted local accounts cannot open the path - the trade-off is that any legitimate tool relying on the simple protocol loses access, and the change may be lost on daemon restart unless scripted, while D-Bus-based resolution (avahi-resolve, avahi-resolve-address, avahi-resolve-host-name) continues to function normally and is not affected. SELinux or AppArmor confinement of the daemon and of client processes is the second practical mitigation, as mandatory access control can block unwanted callers from reaching the socket while preserving resolution for trusted users; the trade-off is policy maintenance overhead and the risk of breaking legitimate confined services. Lowering RLIMIT_NOFILE for avahi-daemon reduces the blast radius of descriptor exhaustion but also limits legitimate operation, and monitoring for repeated accept-failure log lines can provide early warning of an ongoing local DoS attempt.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Avahi implements zero-configuration service discovery using the mDNS/DNS-SD protocol suite on Linux and BSD platforms, and exposes a local simple protocol over the unix socket /run/avahi-daemon/socket in addition to its D-Bus interface. This is a CWE-400 (Uncontrolled Resource Consumption) flaw rooted in a missing enforcement check rather than a memory-safety bug: the constant CLIENTS_MAX is declared, but server_work() calls accept() unconditionally and client_new() appends each accepted client to the server's client list while incrementing n_clients, with no comparison against the configured maximum. The consequences compound - once the process can no longer accept sockets due to the daemon's file-descriptor limit, each rejected attempt triggers an unconditional error log entry, so a trivial connect loop converts into sustained disk/console I/O and elevated load. Because socket-backed resolution feeds nss-mdns name resolution for *.local. names and link-local addresses, exhausting the daemon degrades glibc lookups that rely on the nss-mdns plugin. The candidate fix in pull request 808 illustrates the intended design: it introduces an AvahiCred abstraction (SO_PEERCRED on Linux, LOCAL_PEERCRED/xucred on FreeBSD, no-op elsewhere), tracks max_clients and max_uid_clients, caps total clients at three-quarters of RLIMIT_NOFILE with a hard ceiling of MAX_NOFILE_LIMIT (4096), and logs the uid/gid/pid of each connecting client for attribution.
Know when Avahi gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Local socket access by an unprivileged user (AV:L, PR:L), trivially scripted (AC:L), no data impact (C:N/I:N) but system-wide resolution outage (A:H).
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. In versions up to and including 0.9-rc2, the simple protocol server ignores the documented client limit and accepts unlimited connections, allowing for easy local DoS. Although CLIENTS_MAX is defined, server_work() unconditionally accept()s and client_new() always appends the new client and increments n_clients. There is no check against the limit. When client cannot be accepted as a result of maximal socket number of avahi-daemon, it logs unconditionally error per each connection. Unprivileged local users can exhaust daemon memory and file descriptors, causing a denial of service system-wide for mDNS/DNS-SD. Exhausting local file descriptors causes increased system load caused by logging errors of each of request. Overloading prevents glibc calls using nss-mdns plugins to resolve *.local. names and link-local addresses. As of time of publication, no known patched versions are available, but a candidate fix is available in pull request 808, and some workarounds are available. Simple clients are offered for nss-mdns package functionality. It is not possible to disable the unix socket /run/avahi-daemon/socket, but resolution requests received via DBus are not affected directly. Tools avahi-resolve, avahi-resolve-address and avahi-resolve-host-name are not affected, they use DBus interface. It is possible to change permissions of unix socket after avahi-daemon is started. But avahi-daemon does not provide any configuration for it. Additional access restrictions like SELinux can also prevent unwanted tools to access the socket and keep resolution working for trusted users.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)CVE.org
avahi-daemon in Avahi through 0.6.32 and 0.7 inadvertently responds to IPv6 unicast queries with source addresses that a
Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. In 0.9-rc2
A vulnerability was found in the avahi library. Rated medium severity (CVSS 5.5), this vulnerability is low attack compl
A flaw was found in avahi 0.8-5. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. Public e
avahi-daemon-check-dns.sh in the Debian avahi package through 0.8-4 is executed as root via /etc/network/if-up.d/avahi-d
Avahi daemon versions 0.9rc2 and below can be remotely crashed through a denial of service attack by sending a specially
Avahi is a system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite. In 0.9-rc2
A vulnerability was found in Avahi. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. No ve
A vulnerability was found in Avahi, where a reachable assertion exists in avahi_dns_packet_append_record. Rated medium s
A vulnerability was found in Avahi. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. No ve
A vulnerability was found in Avahi. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. No ve
A vulnerability was found in Avahi. Rated medium severity (CVSS 5.5), this vulnerability is low attack complexity. No ve
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB