Skip to main content
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft .solv file with negative maxsize or allsize header values
  2. Delivery
    Host malicious file on rogue or compromised repository endpoint
  3. Exploit
    Victim system fetches repository metadata from attacker-controlled source
  4. Execution
    repo_add_solv() parses header without negative-value validation
  5. Persist
    Undersized heap allocation followed by out-of-bounds write
  6. Impact
    Process crash causes denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The victim must process a specially crafted .solv file in which the maxsize or allsize fields in the solv file header contain negative integer values, triggering the vulnerable allocation path in repo_add_solv() within src/repo_solv.c. This condition is met whenever a user or automated process (such as a package manager metadata refresh) ingests .solv repository data from an attacker-controlled or compromised source. The CVSS UI:R designation confirms that exploitation requires the victim system to actively or passively initiate the .solv parse - exploitation cannot succeed without this trigger. Exploitation is strictly bounded to denial of service (process crash); the CVSS vector (C:N/I:N/A:H) excludes code execution or information disclosure. No authentication is required of the attacker (PR:N), but the attacker must control or compromise a .solv-serving endpoint that the victim system will contact. Systems configured to consume only trusted, GPG-signed repository metadata are materially harder to exploit, as the attacker must first compromise a trusted source or intercept the metadata fetch.

Impact

CVSS 6.5 (Medium) reflects the combination of network reachability (AV:N), low attack complexity (AC:L), and no required attacker privileges (PR:N), partially offset by mandatory user interaction (UI:R), unchanged scope (S:U), and an impact profile limited entirely to availability (C:N/I:N/A:H). The UI:R constraint is practically significant: exploitation cannot be fully automated without the victim system actively processing a malicious .solv file. However, because libsolv is invoked programmatically by package managers during routine repository metadata refreshes, a victim may trigger the flaw without explicit awareness - reducing the practical barrier below what UI:R typically implies in browser or document contexts. No EPSS score was available in the provided data, so exploitation probability cannot be quantified. The vulnerability is not listed in CISA KEV, confirming no known active exploitation at time of analysis. The impact ceiling is denial of service only; neither code execution nor data exposure is supported by the CVSS vector or description. Real-world priority is moderate-to-elevated for systems that ingest .solv metadata from third-party, untrusted, or user-supplied repository sources (e.g., CI/CD pipelines, package mirrors, developer workstations adding community repos), and lower for tightly controlled production environments that enforce signed, trusted repository sources exclusively.

Exploit ScenarioDerived

An attacker crafts a .solv repository metadata file with negative values embedded in the maxsize or allsize header fields, then hosts it on a rogue or compromised package repository endpoint. When a victim's package manager (such as dnf or zypper) performs a routine repository metadata refresh against the attacker-controlled source - or when a user manually adds the repository - repo_add_solv() processes the malicious file, allocates an undersized heap buffer, writes beyond its bounds, and crashes the process, resulting in a denial of service. No public exploit identified at time of analysis, though the PR #617 fix diff precisely identifies the vulnerable code location, materially reducing the effort required to develop a proof-of-concept.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 21, 2026

Heap-based buffer overflow in libsolv's repo_add_solv() function enables a remote unauthenticated attacker to crash the parsing process by delivering a specially crafted .solv repository metadata file containing negative values in the maxsize or allsize header fields. The malformed values bypass allocation sizing logic, producing an undersized heap buffer that is subsequently written past its bounds, yielding a denial of service. No public exploit identified at time of analysis; however, an upstream fix has been submitted via openSUSE/libsolv GitHub PR #617, and Red Hat has acknowledged the issue via a dedicated security advisory.

RemediationAI

Apply the upstream fix from openSUSE/libsolv GitHub PR #617 (https://github.com/openSUSE/libsolv/pull/617), which adds negative-value and integer-overflow guards to repo_add_solv() in src/repo_solv.c before any heap allocation is performed. Upstream fix available (PR/commit); a released patched version with a confirmed tag or version number is not independently confirmed from available data - monitor the libsolv release page and the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-9149 and Bugzilla #2460380 for a confirmed patch release. As a compensating control prior to patching, restrict all .solv file sources processed by the system to integrity-verified, GPG-signed official mirrors, which denies the attacker the delivery vector needed to supply a malicious .solv file; note that this does not eliminate the vulnerability but removes the practical attack path. Additionally, avoid adding third-party or untrusted repository sources to package manager configurations until a patched release is confirmed and deployed.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

libsolv is an open-source dependency-solving library maintained by openSUSE and widely consumed by RPM-based package managers including dnf (Fedora/RHEL) and zypper (SUSE/openSUSE). The vulnerable code path is repo_add_solv() in src/repo_solv.c, which deserializes binary .solv repository metadata files. CWE-122 (Heap-based Buffer Overflow) applies: the function reads maxsize and allsize integer fields from the .solv header and uses them directly to drive heap allocation without first validating for negative values or near-integer-maximum overflow. A negative value passes as a small positive size after implicit sign conversion or arithmetic, resulting in an allocation far smaller than the data that follows, and subsequent writes to that buffer corrupt adjacent heap memory. The fix introduced in PR #617 adds an include of <limits.h> and inserts two guards in repo_add_solv(): one rejecting negative maxsize or allsize values with a SOLV_ERROR_CORRUPT error, and a second rejecting maxsize values exceeding INT_MAX - 5 with SOLV_ERROR_OVERFLOW, both branching to a new data_error cleanup label for controlled error handling.

Know when Libsolv gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
SUSE MEDIUM
Red Hat 6.5 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionNVD

A flaw was found in libsolv. This heap buffer overflow vulnerability occurs when a victim processes a specially crafted .solv file containing negative size values in the repo_add_solv function. This leads to an undersized memory allocation and a subsequent out-of-bounds write. An attacker could exploit this to cause a denial of service (DoS).

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)NVD

cpe:2.3:a:opensuse:libsolv:*:*:*:*:*:*:*:*
cpe:2.3:a:redhat:hardened_images:-:*:*:*:*:*:*:*
cpe:2.3:a:redhat:openshift_container_platform:4.0:*:*:*:*:*:*:*
cpe:2.3:a:redhat:satellite:6.0:*:*:*:*:*:*:*
cpe:2.3:a:redhat:update_infrastructure:4:*:*:*:*:*:*:*
cpe:2.3:o:redhat:enterprise_linux:7.0:*:*:*:*:*:*:*
cpe:2.3:o:redhat:enterprise_linux:8.0:*:*:*:*:*:*:*
cpe:2.3:o:redhat:enterprise_linux:9.0:*:*:*:*:*:*:*
cpe:2.3:o:redhat:enterprise_linux:10.0:*:*:*:*:*:*:*
CVE-2021-33938 HIGH POC
7.5 Sep 02

Buffer overflow vulnerability in function prune_to_recommended in src/policy.c in libsolv before 0.7.17 allows attackers

CVE-2021-33930 HIGH POC
7.5 Sep 02

Buffer overflow vulnerability in function pool_installable_whatprovides in src/repo.h in libsolv before 0.7.17 allows at

CVE-2021-33929 HIGH POC
7.5 Sep 02

Buffer overflow vulnerability in function pool_disabled_solvable in src/repo.h in libsolv before 0.7.17 allows attackers

CVE-2021-33928 HIGH POC
7.5 Sep 02

Buffer overflow vulnerability in function pool_installable in src/repo.h in libsolv before 0.7.17 allows attackers to ca

CVE-2018-20534 MEDIUM POC
6.5 Dec 28

There is an illegal address access at ext/testcase.c in libsolv.a in libsolv through 0.7.2 that will cause a denial of s

CVE-2018-20533 MEDIUM POC
6.5 Dec 28

There is a NULL pointer dereference at ext/testcase.c (function testcase_str2dep_complex) in libsolvext.a in libsolv thr

CVE-2018-20532 MEDIUM POC
6.5 Dec 28

There is a NULL pointer dereference at ext/testcase.c (function testcase_read) in libsolvext.a in libsolv through 0.7.2

CVE-2026-48863 HIGH
7.5 Jul 16

Denial of service in libsolv's PGP signature verification (solv_pgpvrfy) allows remote attackers to crash automated pack

CVE-2021-3200 LOW POC
3.3 May 18

Buffer overflow vulnerability in libsolv 2020-12-13 via the Solver * testcase_read(Pool *pool, FILE *fp, const char *tes

CVE-2026-9150 MEDIUM
6.5 May 20

Stack-based buffer overflow in libsolv's Debian metadata parser allows remote, unauthenticated attackers to cause a deni

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed
SUSE Linux Enterprise Micro 5.3 Fixed
SUSE Linux Enterprise Micro 5.4 Fixed
SUSE Linux Enterprise Micro 5.5 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy