VYPR
Unrated severityNVD Advisory· Published Sep 2, 2021· Updated Aug 4, 2024

CVE-2021-33928

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

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

News mentions

0

No linked articles in our index yet.