CUPS vulnerable to use-after-free in cupsdAcceptClient()
Summary
CUPS vulnerable to use-after-free in cupsdAcceptClient()
Original description
The description as published by the source.
OpenPrinting CUPS is a standards-based, open source printing system for Linux and other Unix-like operating systems. Starting in version 2.0.0 and prior to version 2.4.6, CUPS logs data of free memory to the logging service AFTER the connection has been closed, when it should have logged the data right before. This is a use-after-free bug that impacts the entire cupsd process.
The exact cause of this issue is the function httpClose(con->http) being called in scheduler/client.c. The problem is that httpClose always, provided its argument is not null, frees the pointer at the end of the call, only for cupsdLogClient to pass the pointer to httpGetHostname. This issue happens in function cupsdAcceptClient if LogLevel is warn or higher and in two scenarios: there is a double-lookup for the IP Address (HostNameLookups Double is set in cupsd.conf) which fails to resolve, or if CUPS is compiled with TCP wrappers and the connection is refused by rules from /etc/hosts.allow and /etc/hosts.deny.
Version 2.4.6 has a patch for this issue.
Source: OSV.dev (Open Source Vulnerabilities) NVD GitHub Advisory OSV
Fix status by distribution
Fixed packages published by each distribution for this CVE
- Debian DEBIAN-CVE-2023-34241 cups Fixed in: 2.3.3op2-3+deb11u3
References
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov
- patch github.com
- web openwall.com
- web openwall.com
- web github.com
- web lists.debian.org
- web lists.fedoraproject.org
- web lists.fedoraproject.org
- web support.apple.com
- web support.apple.com
- web support.apple.com