c-ares: CPU-exhaustion denial of service via unbounded DNS name compression pointer chains
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 7.5epss 0.7%
exploitation probability
0.7%top 50% of all CVEs
observed exploitation
nono source reports it
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Affected products
c-ares · c-aresReferences
https://github.com/c-ares/c-ares/commit/5c8341ba6ff3a8e4e4dfd616f8ed0418838b8b7bhttps://github.com/c-ares/c-ares/commit/f1288bbc70e9a1e0a77134c2382157e52d326aeahttps://github.com/c-ares/c-ares/pull/1164https://github.com/c-ares/c-ares/pull/1210https://github.com/c-ares/c-ares/releases/tag/v1.34.7https://github.com/c-ares/c-ares/security/advisories/GHSA-pjmc-gx33-gc76