CVE-2021-33928

7.5 HIGH

📋 TL;DR

A buffer overflow vulnerability in libsolv's pool_installable function allows attackers to cause Denial of Service by crashing applications using this library. This affects systems using libsolv for package dependency resolution, particularly package managers on Linux distributions. The vulnerability can be triggered when processing specially crafted repository metadata.

💻 Affected Systems

Products:
  • libsolv
  • applications using libsolv library
  • package managers like DNF, Zypper, libdnf
Versions: libsolv versions before 0.7.17
Operating Systems: Linux distributions using libsolv (Fedora, openSUSE, RHEL derivatives)
Default Config Vulnerable: ⚠️ Yes
Notes: Any application linking against vulnerable libsolv versions is affected when processing repository metadata.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system instability or crash of package management tools, potentially preventing software installation/updates and requiring manual recovery.

🟠

Likely Case

Denial of Service through application crash when processing malicious repository data, disrupting package management operations.

🟢

If Mitigated

Limited impact with proper network controls and repository validation, potentially causing only temporary service disruption.

🌐 Internet-Facing: MEDIUM - Requires processing malicious repository data, which could come from compromised mirrors or man-in-the-middle attacks.
🏢 Internal Only: LOW - Requires local access or internal repository compromise to exploit.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires ability to feed malicious repository data to vulnerable applications, which could be achieved through repository compromise or network interception.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libsolv 0.7.17 and later

Vendor Advisory: https://github.com/openSUSE/libsolv/issues/417

Restart Required: No

Instructions:

1. Update libsolv package to version 0.7.17 or later using your distribution's package manager. 2. For distributions: Update via 'sudo dnf update libsolv' (Fedora/RHEL) or 'sudo zypper update libsolv' (openSUSE). 3. Rebuild any statically linked applications with patched library.

🔧 Temporary Workarounds

Repository Validation

linux

Validate repository metadata integrity and only use trusted repositories

# Use GPG-signed repositories only
# Verify repository signatures before use

Network Controls

all

Restrict network access to package repositories and use internal mirrors

# Configure firewall to restrict repository access
# Use local repository mirrors with validated content

🧯 If You Can't Patch

  • Isolate systems from untrusted networks and repositories
  • Implement strict repository validation and use only signed, verified repositories

🔍 How to Verify

Check if Vulnerable:

Check libsolv version: 'rpm -q libsolv' or 'dpkg -l libsolv*' and verify version is below 0.7.17

Check Version:

rpm -q libsolv  # RHEL/Fedora/SUSE or dpkg -l libsolv*  # Debian/Ubuntu

Verify Fix Applied:

Verify libsolv version is 0.7.17 or higher: 'rpm -q libsolv | grep 0.7.1[7-9]' or check package version in package manager

📡 Detection & Monitoring

Log Indicators:

  • Package manager crashes or segmentation faults
  • Unexpected termination of applications using libsolv
  • Repository synchronization failures

Network Indicators:

  • Unusual repository traffic patterns
  • Connections to untrusted repository sources

SIEM Query:

process.name: ("dnf" OR "zypper" OR "packagekitd") AND event.action: crash

🔗 References

📤 Share & Export