CUPS: Memory corruption — GLSA 200711-16

CUPS contains a boundary checking error that might lead to the execution of arbitrary code.

Affected packages

net-print/cups on all architectures
Affected versions < 1.2.12-r2
Unaffected versions >= 1.2.12-r2

Background

CUPS provides a portable printing layer for UNIX-based operating systems.

Description

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.

Impact

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.

Workaround

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.

Resolution

All CUPS users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=net-print/cups-1.2.12-r2"

References

Release date
November 12, 2007

Latest revision
November 12, 2007: 01

Severity
high

Exploitable
remote

Bugzilla entries