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.
{
"binaries": [
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolv-perl"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolv-tools"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolv0"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolv0-dev"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolvext0"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "libsolvext0-dev"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "python-solv"
},
{
"binary_version": "0.6.11-1.1ubuntu0.1~esm1",
"binary_name": "python3-solv"
}
]
}
{
"binaries": [
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolv-perl"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolv-tools"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolv0"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolv0-dev"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolvext0"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "libsolvext0-dev"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "python-solv"
},
{
"binary_version": "0.6.30-1ubuntu0.1~esm1",
"binary_name": "python3-solv"
}
]
}