CVE-2021-33928
Description
Buffer overflow vulnerability in function pool_installable in src/repo.h in libsolv before 0.7.17 allows attackers to cause a Denial of Service.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
4- libsolv/libsolvdescription
- osv-coords2 versions
< 0.7.16-3.el8_4+ 1 more
- (no CPE)range: < 0.7.16-3.el8_4
- (no CPE)range: < 0.7.16-3.el8_4
Patches
Vulnerability mechanics
Root cause
"Missing bounds check on the index used in the MAPTST macro allows heap-buffer-overflow when accessing pool->considered->map."
Attack vector
An attacker supplies a crafted testcase file to the `testsolv` tool. During parsing, the `testcase_read` function eventually calls `selection_make`, which invokes `solvable_matches_selection_flags` and then `pool_disabled_solvable` (or the other two functions) with an `id` value that produces an out-of-bounds index into `pool->considered->map`. This results in a heap-buffer-overflow read, causing a denial of service. The precondition is that the attacker can provide a malicious input file to the `testsolv` binary.
Affected code
The heap-buffer overflow occurs in `src/repo.h` at lines 96, 120, and 138, inside the inline functions `pool_disabled_solvable`, `pool_installable`, and `pool_installable_whatprovides`. All three functions use the same vulnerable macro `MAPTST(pool->considered, id)` without checking that the computed index `id>>3` is within the bounds of the `pool->considered->map` array.
What the fix does
The advisory does not include a patch diff. The recommended fix is to add a bounds check before the `MAPTST(pool->considered, id)` macro invocation so that the index `id>>3` is verified to be less than `pool->considered->size`. Without such a check, any caller that passes an `id` derived from untrusted input can trigger an out-of-bounds read.
Preconditions
- inputAttacker must be able to supply a crafted testcase file to the testsolv tool
- configThe pool->considered map must be allocated with a size smaller than the index derived from the attacker-controlled id
Generated on May 29, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
1- github.com/openSUSE/libsolv/issues/417mitrex_refsource_MISC
News mentions
0No linked articles in our index yet.