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. Acknowledgements: 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 stack. 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 http://secunia.com/secunia_research/2007-76/advisory/
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.