Description
c-ares is an asynchronous resolver library. Prior to 1.34.7, ares_dns_name_parse() enforces backward DNS compression pointers but does not bound the total pointer hops or assembled name length. A malicious DNS server can send a response containing a long descending pointer chain and many resource records whose NAME or RDATA fields refer to the chain, causing repeated decompression work that grows quadratically with message size. A single crafted response can stall the single-threaded c-ares event loop and deny DNS resolution, without causing memory corruption or information disclosure. This issue is fixed in version 1.34.7.
References6
- github.com/c-ares/c-ares/commit/5c8341ba6ff3a8e4e4dfd616f8ed041…
- github.com/c-ares/c-ares/commit/f1288bbc70e9a1e0a77134c2382157e…
- github.com/c-ares/c-ares/pull/1164
- github.com/c-ares/c-ares/pull/1210
- github.com/c-ares/c-ares/releases/tag/v1.34.7
- github.com/c-ares/c-ares/security/advisories/GHSA-pjmc-gx33-gc76
Metrics
- CVSS 3.1
-
7.5
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - EPSS — exploit probability
- 0% percentile: 42 · as of 8 November 2026
- CWE
- CWE-407
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.