repodata_schema2id in repodata.c in libsolv before 0.7.6 has a heap-based buffer over-read via a last schema whose length is less than the length of the input schema.
[
{
"source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da",
"id": "CVE-2019-20387-14be743e",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "repodata_schema2id",
"file": "src/repodata.c"
},
"signature_type": "Function",
"digest": {
"length": 1697.0,
"function_hash": "4899277101288193706485005846420497178"
}
},
{
"source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da",
"id": "CVE-2019-20387-2b36464b",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "src/repodata.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"272047716795212802441097868574234895908",
"37400958923676777071933101271582289650",
"265341671384809898946922769719777125133",
"53443162342254653955672112058005017995",
"278243617184913516167546565061182609866",
"23330873008043240081292770275914080789",
"260254168737727559623885259626174947827"
]
}
}
]