Vigil@nce: CUPS, integer overflow via PNG
December 2008 by Vigil@nce
SYNTHESIS
An attacker can print a malicious PNG image in order to generate
an integer overflow in CUPS leading to a denial of service or to
code execution.
Gravity: 2/4
Consequences: privileged access/rights
Provenance: intranet client
Means of attack: no proof of concept, no attack
Ability of attacker: expert (4/4)
Confidence: confirmed by the editor (5/5)
Diffusion of the vulnerable configuration: high (3/3)
Creation date: 01/12/2008
IMPACTED PRODUCTS
– Debian Linux
– Unix - plateform
DESCRIPTION
CUPS (Common UNIX Printing System) provides printers management
under Unix. It listens on the 631/udp port, where clients connect.
The _cupsImageReadPNG() function computes the size of a memory
buffer from an integer multiplication:
bufsize = img->xsize * img->ysize * 3;
However, this multiplication can overflow and lead to the
allocation of a short memory area. A memory corruption thus occurs
when data are copied in this memory area.
An attacker can therefore print a malicious PNG image in order to
generate an integer overflow leading to a denial of service or to
code execution on the server where CUPS is installed.
CHARACTERISTICS
Identifiers: BID-32518, CVE-2008-5286, DSA 1677-1, L2974,
VIGILANCE-VUL-8274