Description
pycares is a Python module which provides an interface to c-ares. c-ares is a C library that performs DNS requests and name resolutions asynchronously. Prior to version 4.9.0, pycares is vulnerable to a use-after-free condition that occurs when a Channel object is garbage collected while DNS queries are still pending. This results in a fatal Python error and interpreter crash. The vulnerability has been fixed in pycares 4.9.0 by implementing a safe channel destruction mechanism.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Confidentiality (Vulnerable System)
None
Integrity (Vulnerable System)
None
Availability (Vulnerable System)
High
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
Affected products
- aio-libs / aiodns< 4.9.0 – < 4.9.0
References
- VENDOR_ADVISORYhttps://github.com/saghul/pycares/security/advisories/GHSA-5qpg-rh4j-qp35
- VENDOR_ADVISORYhttps://github.com/saghul/pycares/security/advisories/GHSA-5qpg-rh4j-qp35
- PATCHhttps://github.com/aio-libs/aiodns/commit/f259a6e3650555157af53ac2b39f2ff545321d55
- PATCHhttps://github.com/saghul/pycares/commit/ebfd7d71eb8e74bc1057a361ea79a5906db510d4
- PATCHhttps://github.com/aio-libs/aiodns/releases/tag/v3.5.0
- PATCHhttps://github.com/saghul/pycares/releases/tag/v4.9.0