Skip to content
Commit 4794b5dd authored by Tobias Stöckmann's avatar Tobias Stöckmann Committed by Matthieu Herrb
Browse files

Fix heap overflows when parsing malicious files. (CVE-2017-16612)



It is possible to trigger heap overflows due to an integer overflow
while parsing images and a signedness issue while parsing comments.

The integer overflow occurs because the chosen limit 0x10000 for
dimensions is too large for 32 bit systems, because each pixel takes
4 bytes. Properly chosen values allow an overflow which in turn will
lead to less allocated memory than needed for subsequent reads.

The signedness bug is triggered by reading the length of a comment
as unsigned int, but casting it to int when calling the function
XcursorCommentCreate. Turning length into a negative value allows the
check against XCURSOR_COMMENT_MAX_LEN to pass, and the following
addition of sizeof (XcursorComment) + 1 makes it possible to allocate
less memory than needed for subsequent reads.

Signed-off-by: default avatarTobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: default avatarMatthieu Herrb <matthieu@herrb.eu>
parent 75b10c97
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment