Bug 1623022 (CVE-2018-15857)

Summary: CVE-2018-15857 libxkbcommon: Invalid free in ExprAppendMultiKeysymList resulting in a crash
Product: [Other] Security Response Reporter: Andrej Nemec <anemec>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: me, peter.hutterer, xgl-maint
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libxkbcommon 0.8.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-06 19:19:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1623038, 1643153    
Bug Blocks: 1623044    

Description Andrej Nemec 2018-08-28 11:54:06 UTC
An invalid free in ExprAppendMultiKeysymList in xkbcomp/ast-build.c in xkbcommon before 0.8.1 could be used by local attackers to crash xkbcommon keymap parsers or possibly have unspecified other impact by supplying a crafted keymap file.

Upstream patch:

https://github.com/xkbcommon/libxkbcommon/commit/c1e5ac16e77a21f87bdf3bc4dea61b037a17dddb

References:

https://lists.freedesktop.org/archives/wayland-devel/2018-August/039232.html

Comment 3 Riccardo Schirone 2018-10-25 15:30:25 UTC
ExprAppendMultiKeysymList() in xkbcomp/ast-build.c appends a list of KeySymbols to an existing one and frees it after doing so. However, the address of the pointer to the KeySyms expression is passed to the FreeStmt() function, instead of the pointer itself, causing a free on an invalid area. An attacker, by creating a special xkb keymap file, may be able to use this flaw to crash the program or execute code.

Comment 5 errata-xmlrpc 2019-08-06 12:11:16 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2019:2079 https://access.redhat.com/errata/RHSA-2019:2079

Comment 6 Product Security DevOps Team 2019-08-06 19:19:29 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2018-15857