Bug 1860364 (CVE-2020-14401) - CVE-2020-14401 libvncserver: libvncserver/scale.c has a pixel_value integer overflow
Summary: CVE-2020-14401 libvncserver: libvncserver/scale.c has a pixel_value integer o...
Alias: CVE-2020-14401
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 1860365 1860366 1861159 1861160
Blocks: 1860332
TreeView+ depends on / blocked
Reported: 2020-07-24 11:27 UTC by Marian Rehak
Modified: 2021-11-02 17:20 UTC (History)
4 users (show)

Fixed In Version: libvncserver 0.9.13
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2021-11-02 17:20:51 UTC

Attachments (Terms of Use)

Description Marian Rehak 2020-07-24 11:27:50 UTC
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/scale.c has a pixel_value integer overflow.

Upstream commit:


Comment 1 Marian Rehak 2020-07-24 11:28:23 UTC
Created libvncserver tracking bugs for this issue:

Affects: epel-7 [bug 1860366]
Affects: fedora-all [bug 1860365]

Comment 2 Todd Cullum 2020-07-27 23:48:21 UTC
in libvncserver/scale.c, rfbScaledScreenUpdateRect() has `pixel_value += (srcptr2[z] << (8 * z));` which performs a shift operation on a 64-bit value using an 8-bit variable, which could cause an unsigned integer wrap. A few lines down, there is a write: `pixel_value = ((red & redMax) << redShift) | ((green & greenMax) << greenShift) | ((blue & blueMax) << blueShift);`. In the event of an unsigned wrap, the write could be incorrect and potentially cause a crash.

Note You need to log in before you can comment on or make changes to this bug.