Description: | 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.
|