CUPS contains a boundary checking error that might lead to the execution of arbitrary code.
|Package||net-print/cups on all architectures|
|Affected versions||< 1.2.12-r2|
|Unaffected versions||>= 1.2.12-r2|
CUPS provides a portable printing layer for UNIX-based operating systems.
Alin Rad Pop (Secunia Research) discovered an off-by-one error in the ippReadIO() function when handling Internet Printing Protocol (IPP) tags that might allow to overwrite one byte on the stack.
A local attacker could send a specially crafted IPP request containing "textWithLanguage" or "nameWithLanguage" tags, leading to a Denial of Service or the execution of arbitrary code with the privileges of the "lp" user. If CUPS is configured to allow network printing, this vulnerability might be remotely exploitable.
To avoid remote exploitation, network access to CUPS servers on port 631/udp should be restricted. In order to do this, update the "Listen" setting in cupsd.conf to "Listen localhost:631" or add a rule to the system's firewall. However, this will not avoid local users from exploiting this vulnerability.
All CUPS users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=net-print/cups-1.2.12-r2"
November 12, 2007
November 12, 2007: 01