Alin Rad Pop of the Secunia Research has discovered a vulnerability in CUPS,
which can be exploited by malicious people to compromise a vulnerable system.
The vulnerability is caused due to a boundary error within the
"ippReadIO()" function in cups/ipp.c when processing IPP (Internet
Printing Protocol) tags. This can be exploited to overwrite one byte on
the stack with a zero by sending an IPP request containing specially
crafted "textWithLanguage" or "nameWithLanguage" tags.
Successful exploitation allows execution of arbitrary code.
Red Hat would like to thank Alin Rad Pop for reporting this issue.
Created attachment 234891 [details]
Patch for CUPS 1.1 by Michael Sweet
Created attachment 234901 [details]
Patch for CUPS 1.2 by Michael Sweet
Created attachment 234911 [details]
Patch for CUPS 1.3 by Michael Sweet
CUPS 1.1 is not affected by "one null byte overwrite" mentioned in Secunia
advisory, that part only affects CUPS 1.2+. Attacker can only overwrite memory
location 2^16 bytes away from current stack location towards the bottom of the
Patch for CUPS 1.1 adds additional checks on input values. Without them, it may
still be possible to trick cupsd to read some random data from stack and
possibly crash daemon.
now public, removing embargo
cups-1.3.4-2.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.