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.
{ "vanir_signatures": [ { "id": "CVE-2019-20387-14be743e", "digest": { "length": 1697.0, "function_hash": "4899277101288193706485005846420497178" }, "signature_type": "Function", "deprecated": false, "target": { "file": "src/repodata.c", "function": "repodata_schema2id" }, "signature_version": "v1", "source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da" }, { "id": "CVE-2019-20387-2b36464b", "digest": { "line_hashes": [ "272047716795212802441097868574234895908", "37400958923676777071933101271582289650", "265341671384809898946922769719777125133", "53443162342254653955672112058005017995", "278243617184913516167546565061182609866", "23330873008043240081292770275914080789", "260254168737727559623885259626174947827" ], "threshold": 0.9 }, "signature_type": "Line", "deprecated": false, "target": { "file": "src/repodata.c" }, "signature_version": "v1", "source": "https://github.com/opensuse/libsolv/commit/fdb9c9c03508990e4583046b590c30d958f272da" } ] }