#13870 closed enhancement (fixed)

libX11-1.6.11 (CVE-2020-14344)

Reported by: Douglas R. Reno Owned by: Douglas R. Reno
Priority: high Milestone: 10.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New point version

X.Org security advisory: July 31, 2020

Heap corruption in the X input method client in libX11
======================================================

CVE-2020-14344

The X Input Method (XIM) client implementation in libX11 has some
integer overflows and signed/unsigned comparison issues that can lead
to heap corruption when handling malformed messages from an input
method.

Patches
=======

Patches for these issues have been commited to the libX11 git repository.
libX11 1.6.10 will be released shortly and will include those patches.

https://gitlab.freedesktop.org/xorg/lib/libx11

commit 1703b9f3435079d3c6021e1ee2ec34fd4978103d (HEAD -> master)

    Change the data_len parameter of _XimAttributeToValue() to CARD16
    
    It's coming from a length in the protocol (unsigned) and passed
    to functions that expect unsigned int parameters (_XCopyToArg()
    and memcpy()).
    
commit 1a566c9e00e5f35c1f9e7f3d741a02e5170852b2

    Zero out buffers in functions
    
    It looks like uninitialized stack or heap memory can leak
    out via padding bytes.
    

commit 2fcfcc49f3b1be854bb9085993a01d17c62acf60

    Fix more unchecked lengths
    
commit 388b303c62aa35a245f1704211a023440ad2c488

    fix integer overflows in _XimAttributeToValue()
    

commit 0e6561efcfaa0ae7b5c74eac7e064b76d687544e

    Fix signed length values in _XimGetAttributeID()
    
    The lengths are unsigned according to the specification. Passing
    negative values can lead to data corruption.
    
Thanks
======

X.Org thanks Todd Carson for reporting these issues to our security
team and assisting them in understanding them and providing fixes.


-- 
Matthieu Herrb

Change History (5)

comment:1 by Douglas R. Reno, 14 months ago

Priority: normalhigh

comment:2 by Douglas R. Reno, 14 months ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:3 by Douglas R. Reno, 14 months ago

Summary: libX11-1.6.10 (CVE-2020-14344)libX11-1.6.11 (CVE-2020-14344)

Regression fix, now 1.6.11

This release fixes a regression introduced by the security patches in 1.6.10.
See https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/116 for details.

Alan Coopersmith (1):
      libX11 1.6.11

Yichao Yu (1):
      Fix size calculation in `_XimAttributeToValue`.

git tag: libX11-1.6.11

comment:4 by Douglas R. Reno, 14 months ago

Release notes for 1.6.10

Adam Jackson (1):
      Fix XTS regression in XCopyColormapAndFree

Alan Coopersmith (1):
      Fix spelling/wording issues

Alex Henrie (1):
      Handle small final sigma in XConvertCase

Marko Myllynen (1):
      Update Finnish compose sequences for SFS 5966:2019 standard

Matthieu Herrb (2):
      Change the data_len parameter of _XimAttributeToValue() to CARD16
      libX11 1.6.10

Peter Hutterer (1):
      Handle ssharp in XConvertCase()

Raul Fernandes (1):
      Use memcmp and memcpy

Samuel Thibault (2):
      Braille: Fix default lookup
      xlibi18n: Fix converting horizline keysyms to UCS

Thomas E. Dickey (4):
      reduce gcc-normal warnings using casts (no object change)
      reduce gcc-normal warnings using casts (no object change)
      update/correct function prototypes in manpages to match headers
      document an ancient performance problem (see Debian #954845).

Todd Carson (4):
      Fix signed length values in _XimGetAttributeID()
      fix integer overflows in _XimAttributeToValue()
      Fix more unchecked lengths
      Zero out buffers in functions

Tristan Miller (1):
      Add acute accent compose sequences for Russian vowels.

git tag: libX11-1.6.10

comment:5 by Douglas R. Reno, 14 months ago

Resolution: fixed
Status: assignedclosed

Fixed at r23492

Note: See TracTickets for help on using tickets.