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.
{
"unresolved_ranges": [
{
"source": "CPE_FIELD",
"cpes": [
"cpe:2.3:o:debian:debian_linux:8.0:*:*:*:*:*:*:*"
],
"extracted_events": [
{
"last_affected": "8.0"
}
],
"vendor_product": "debian:debian_linux"
}
]
}{
"cpe": "cpe:2.3:a:opensuse:libsolv:*:*:*:*:*:*:*:*",
"source": [
"CPE_FIELD",
"REFERENCES"
],
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "0.7.6"
}
]
}"2026-05-18T15:12:08Z"
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2019-20387.json"
[
{
"source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da",
"signature_version": "v1",
"id": "CVE-2019-20387-14be743e",
"digest": {
"length": 1697.0,
"function_hash": "4899277101288193706485005846420497178"
},
"signature_type": "Function",
"target": {
"file": "src/repodata.c",
"function": "repodata_schema2id"
},
"deprecated": false
},
{
"source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da",
"signature_version": "v1",
"id": "CVE-2019-20387-2b36464b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"272047716795212802441097868574234895908",
"37400958923676777071933101271582289650",
"265341671384809898946922769719777125133",
"53443162342254653955672112058005017995",
"278243617184913516167546565061182609866",
"23330873008043240081292770275914080789",
"260254168737727559623885259626174947827"
]
},
"signature_type": "Line",
"target": {
"file": "src/repodata.c"
},
"deprecated": false
}
]