Logo
componentc-ares
Name
c-ares
Version
1.18.1
Type
library
Description
c-ares is a C library that resolves names asynchronously.
Licenses
MIT
PURL
-
CPE
cpe:2.3:*:c-ares:c-ares:1.18.1:*:*:*:*:*:*:*

Other Versions#


Project
Branch
Version
master
1.34.6
scarthgap
1.27.0

Patches#


#
Title
Author
Resolve
1
Add str len check in config_sortlist to avoid stack overflow
hopper-vul <118949689+hopper-vul@users.noreply.github.com>
CVE-2022-4904
2
Merge pull request from GHSA-mg26-v6qh-x48q
Brad House <brad@brad-house.com>
CVE-2024-25629
3
Merge pull request from GHSA-9g78-jv2r-p7vc
Brad House <brad@brad-house.com>
CVE-2023-32067
4
Merge pull request from GHSA-x6mf-cxr9-8q6v
Brad House <brad@brad-house.com>
CVE-2023-31130
5
Merge pull request from GHSA-8r8p-23f3-64c2
Brad House <brad@brad-house.com>
CVE-2023-31147

Vulnerabilities#


Name
Analysis
Description
Patched
c-ares is a C library for asynchronous DNS requests. `ares__read_line()` is used to parse local configuration files such as `/etc/resolv.conf`, `/etc/nsswitch.conf`, the `HOSTALIASES` file, and if using a c-ares version prior to 1.27.0, the `/etc/hosts` file. If any of these configuration files has an embedded `NULL` character as the first character in a new line, it can lead to attempting to read memory prior to the start of the given buffer which may result in a crash. This issue is fixed in c-ares 1.27.0. No known workarounds exist.
Patched
c-ares is an asynchronous resolver library. c-ares is vulnerable to denial of service. If a target resolver sends a query, the attacker forges a malformed UDP packet with a length of 0 and returns them to the target resolver. The target resolver erroneously interprets the 0 length as a graceful shutdown of the connection. This issue has been patched in version 1.19.1.
Patched
c-ares is an asynchronous resolver library. When /dev/urandom or RtlGenRandom() are unavailable, c-ares uses rand() to generate random numbers used for DNS query ids. This is not a CSPRNG, and it is also not seeded by srand() so will generate predictable output. Input from the random number generator is fed into a non-compilant RC4 implementation and may not be as strong as the original RC4 implementation. No attempt is made to look for modern OS-provided CSPRNGs like arc4random() that is widely available. This issue has been fixed in version 1.19.1.
Patched
c-ares is an asynchronous resolver library. ares_inet_net_pton() is vulnerable to a buffer underflow for certain ipv6 addresses, in particular "0::00:00:00/2" was found to cause an issue. C-ares only uses this function internally for configuration purposes which would require an administrator to configure such an address via ares_set_sortlist(). However, users may externally use ares_inet_net_pton() for other purposes and thus be vulnerable to more severe issues. This issue has been fixed in 1.19.1.
Patched
A flaw was found in the c-ares package. The ares_set_sortlist is missing checks about the validity of the input string, which allows a possible arbitrary length stack overflow. This issue may cause a denial of service or a limited impact on confidentiality and integrity.