An infinite loop when reaching EOL unexpectedly in compose/parser.c (aka the keymap parser) in xkbcommon before 0.8.1 could be used by local attackers to cause a denial of service during parsing of crafted keymap files.
{
"unresolved_ranges": [
{
"extracted_events": [
{
"last_affected": "14.04"
},
{
"last_affected": "16.04"
},
{
"last_affected": "18.04"
}
],
"cpes": [
"cpe:2.3:o:canonical:ubuntu_linux:14.04:*:*:*:lts:*:*:*",
"cpe:2.3:o:canonical:ubuntu_linux:16.04:*:*:*:lts:*:*:*",
"cpe:2.3:o:canonical:ubuntu_linux:18.04:*:*:*:lts:*:*:*"
],
"vendor_product": "canonical:ubuntu_linux",
"source": "CPE_STRING"
}
]
}{
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "0.8.1"
}
],
"cpe": "cpe:2.3:a:xkbcommon:xkbcommon:*:*:*:*:*:*:*:*",
"source": [
"CPE_RANGE",
"REFERENCES"
]
}[
{
"digest": {
"function_hash": "111084396536791922603128660627799779023",
"length": 2866.0
},
"id": "CVE-2018-15856-4feb5e44",
"signature_version": "v1",
"target": {
"file": "src/compose/parser.c",
"function": "lex"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://github.com/xkbcommon/libxkbcommon/commit/842e4351c2c97de6051cab6ce36b4a81e709a0e1"
},
{
"digest": {
"line_hashes": [
"339976281554706251715786465784200783707",
"286489673923724958058425891237163149150",
"213471127827195187591013137219067204299",
"314939995327740885430641703664042403296"
],
"threshold": 0.9
},
"id": "CVE-2018-15856-72580473",
"signature_version": "v1",
"target": {
"file": "src/compose/parser.c"
},
"deprecated": false,
"signature_type": "Line",
"source": "https://github.com/xkbcommon/libxkbcommon/commit/842e4351c2c97de6051cab6ce36b4a81e709a0e1"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2018-15856.json"
"2026-06-04T08:18:05Z"