Top/Articles/libzypp (openSUSE/SUSE Linux) File-Overwrite Flaw: What It Is and How to Fix It
libzypp-cve-cover-en

libzypp (openSUSE/SUSE Linux) File-Overwrite Flaw: What It Is and How to Fix It

libzypp, the openSUSE/SUSE Linux package manager, has a path traversal flaw (CVE-2026-25707, CVSS up to 8.8): a malicious repository can overwrite system files. Update to the fixed version now.

NewsPublished June 29, 2026Last updated July 24, 2026
Table of contents
Key takeaways

libzypp, the openSUSE/SUSE Linux package manager, has a path traversal flaw (CVE-2026-25707, CVSS up to 8.8): a malicious repository can overwrite system files. Update to the fixed version now.

"libzypp," the core component that installs and updates software on the "openSUSE" Linux distribution and the enterprise "SUSE Linux Enterprise," has a flaw: with only a small tweak to the data received from a software source (a repository), an attacker can overwrite important files that should never be changed on your PC or server. The identifier is CVE-2026-25707, with a severity of up to CVSS 8.8 out of 10 (NVD rating). The fix itself landed in libzypp 17.38.10, but after disclosure, similar holes in repository handling kept turning up, so if you are remediating now, the safe move is to go to 17.38.13 or later, which bundles the related fixes together. If you only use the standard official repositories over encrypted connections, this is not something that gets exploited instantly. If you have added non-official sources, update sooner rather than later.

The tricky part is that this is a hole in the very mechanism that exists "to apply security updates." On Linux, it is routine to automatically fetch and replace software from a trusted source, and that work usually runs with the system's highest privileges (administrator rights). That is exactly why a compromise here spreads damage quickly. SUSE, the developer, has already finished shipping fixed versions for each product (as of July 23, 2026 the status is "Resolved"), so all that remains is for users to apply the update.

ItemDetails
CVECVE-2026-25707
Affected softwarelibzypp (the package manager for openSUSE / SUSE Linux)
TypePath traversal
(escapes the intended storage location)
What happensArbitrary file overwrite
β†’ denial of service or privilege escalation
Severity (CVSS)Up to 8.8 (NVD) / 7.4 (SUSE)
FixFixed in libzypp 17.38.10
(17.38.13 with related CVEs; updates shipped)

*Severity scores differ by rating body. NVD rates it 8.8, while the developer SUSE rates it 7.4. The reason for the gap is explained below.

Who is at risk, and what is the damage

This hole can be exploited by an attacker who can set up β€” or hijack β€” a software source (repository) that the user has added and trusts. Examples include the operator of a non-official add-on repository acting maliciously, such a repository being taken over, or an attacker intercepting an unencrypted delivery path and swapping traffic. For an organization running its own internal mirror (a replica delivery server), that mirror could be turned into the entry point of an attack.

The attacker embeds "../" (the symbol that moves up one directory level) into the metadata listing the software a repository serves, causing files to be written outside the designated storage area when software is fetched. libzypp temporarily stores fetched data in a local cache folder (under /var/cache/zypp/), but it validated the path value poorly. Allowing a path such as ../../../../etc/passwd lets even files at the heart of the system be overwritten.

The essence of the damage is that "the update process meant for safety" becomes the doorway to a takeover. Because the update work runs with administrator privileges, overwriting configuration files or auto-run mechanisms can hand over full control of a server or PC (privilege escalation) or break boot-critical files so the machine stops working (denial of service). The blast radius is widest not for individuals updating one machine by hand, but for organizations distributing the same add-on repository to hundreds of servers. A hole in a foundational piece of software rippling across the whole system is a textbook supply-chain risk. Our OSS supply-chain scanner also covers why it matters to inspect such "foundational software you depend on" all at once.

What libzypp is, and whether you are affected

libzypp is the "heart of software management" on openSUSE and SUSE Linux Enterprise, handling search, fetch, install, update, and removal of software. The familiar zypper command and the YaST configuration tool both call libzypp internally. It is the unsung workhorse that resolves software dependencies and verifies that sources are legitimate.

What matters is "whether your PC or server is affected." libzypp is specific to SUSE-family Linux; other Linux families use different mechanisms. A rough guide:

Your LinuxSoftware managementAffected?
openSUSE Leap / Tumbleweedlibzypp / zypperYes (update)
SUSE Linux Enterprise (SLES, etc.)libzypp / zypperYes (update)
SLE Micro / SUSE Linux Microlibzypp / zypperYes (update)
Ubuntu / Debianapt / dpkgNot affected
RHEL / Fedora / Rocky, etc.dnf / rpmNot affected

In short, if you use Ubuntu, Debian, or a Red Hat-family distribution, you are not subject to this vulnerability itself. Conversely, if you run openSUSE or SUSE servers in production, the safest assumption is that you are affected, and you should proceed with remediation.

How files get overwritten

The mechanism is simple. A repository serves a catalog (metadata) of "which software is where, under what name." libzypp reads this catalog, fetches files from the listed locations, and lays them out in the same structure in a local cache folder. The problem: even when the storage location (the location value) in the catalog contained a relative path stacked with ../, it was trusted and processed as-is.

The developer's bug report (bsc#1259802) states the attack idea plainly. Knowing the cache base is /var/cache/zypp/(repo name), planting an entry like <location href="../../../../etc/passwd"> in the catalog lets an attacker walk back up from the intended storage area and overwrite files such as /etc/passwd (the user account list). Moreover, if the repository's signature is already trusted and the data checksum matches, arbitrary data could be written without going through the RPM signature check that normally guards against tampering of the software itself.

The classification is "relative path traversal" (CWE-23), where the storage path escapes the intended range. The fix was made in the two components that parse the catalog (in the relevant commit, ContentFileReader.cc and RepomdFileReader.cc): entries pointing outside the repository (those containing ../) are now detected, warned about, and discarded rather than imported.

Why the severity splits between "8.8" and "7.4"

For the same vulnerability, the numbers differ by rating body. NVD rates it up to 8.8 (low attack complexity, and it counts an impact on availability β€” keeping the service running), while the developer SUSE rates it 7.4 (the attack requires several conditions to line up, making it high-complexity, with no availability impact). The gap reflects a difference in how easily an attacker is judged able to assemble the preconditions.

The practical point is that, under either rating, the premise is a state where "a malicious or hijacked repository is being trusted." If you only use the standard official repositories and your traffic is encrypted, this is not something that gets exploited instantly. That said, environments that add non-official repositories are common, and if one of them is breached, it becomes a real threat. Rather than the size of the number, it is more useful to check "whether you are carrying any untrusted sources."

Affected versions and the fix

TargetAffected versionsAction
libzypp (upstream)before 17.38.10
(CVE-2026-25707 alone, per NVD)
Move to 17.38.13 or later
(includes related CVEs)
openSUSE Leap / Tumbleweedpre-update versionsUpdate the shipped package
SUSE Linux Enterprise 15 / 16pre-update versionsApply SUSE-provided updates

CVE-2026-25707 itself was fixed upstream in libzypp 17.38.10. But after disclosure, more path traversals in the same repository handling turned up one after another (see the footnote below), and the effective end point once those fixes are included is 17.38.13. The update packages for each product (for example SUSE-SU-2026:2590-1) have already finished shipping, and on the SUSE CVE page this CVE is marked "Resolved" for each product. Because exact package version numbers differ by product due to packaging, the most reliable way to confirm the precise affected and fixed versions is to check your own product on the SUSE CVE page.

*As a follow-up after publication, more flaws of the same kind have been found in repository handling. CVE-2026-44941 (CVSS 8.4, fixed in 17.38.12) lets an attacker inject or overwrite files with administrator rights via the signing-key hint (keyhint) in the catalog (repomd.xml), and CVE-2026-44942 (CVSS 6.5, fixed in 17.38.13) abuses the path element in a configuration (.repo) file to write files outside the cache and fill up the disk. Both are closed together in 17.38.13, so updating to 17.38.13 or later handles them in one step.

What to do now

The top priority is updating to the fixed version. On openSUSE and SUSE Linux, applying the distributed updates also refreshes libzypp. If you run from the command line, the basics are to refresh the catalog with zypper refresh and then apply updates with zypper update (or zypper patch). Organizations with many servers should list which hosts still run an old libzypp and update those using external add-on repositories first.

If you cannot update right away, reducing the "untrusted sources" that are the precondition for damage is your interim defense. Specifically: review your non-official add-on repositories and keep only the ones you truly need; switch unencrypted (http://) repositories to encrypted (https://); and, if you use an internal mirror, reassess the security of that server itself. Taking one look at "where your software actually comes from" prepares you for similar threats beyond this one.

Timeline

This vulnerability was found internally not by an outside attacker but by a libzypp developer (Michael Andres), who prepared the fix and shipped updates before disclosure. The fact that a fix was ready before the details became widely known is a positive for users. The main flow:

WhenEvent
March 18, 2026Issue identified internally (bsc#1259802)
May 28, 2026Bug information made public
Early–late June 2026Update packages shipped per product
June 29, 2026NVD published details as CVE-2026-25707
July 2, 2026A new flaw of the same kind, CVE-2026-44941 (CVSS 8.4), disclosed; fixed in 17.38.12
As of July 23, 2026CVE-2026-25707 fully shipped as fixes for each product (SUSE marks it "Resolved"). The end point including related CVEs is 17.38.13. No KEV listing or exploitation reports confirmed

Summary

CVE-2026-25707 is a path traversal flaw in libzypp, the component that installs and updates software on openSUSE and SUSE Linux. Simply planting ../ in the catalog served by a malicious (or hijacked) repository can overwrite critical system files through the update process that runs with administrator rights, leading to takeover or denial of service. The fixed versions have already finished shipping: CVE-2026-25707 is closed in 17.38.10, and once you include the same-family CVE-2026-44941 and CVE-2026-44942 found after publication, everything is closed in 17.38.13. The key point is to move to 17.38.13 or later.

This is the kind of risk unique to foundational software: the "mechanism for applying updates" itself becomes the hole. Take this chance to inspect where your software comes from and to avoid carrying untrusted sources.

FAQ

I use openSUSE or SUSE β€” am I necessarily at risk?

Exploitation assumes a state where "a malicious or hijacked repository is being trusted." If you only use the standard official repositories with encrypted traffic, this is not something that gets exploited immediately. Still, since the right conditions lead to arbitrary file overwrite, we recommend updating to the fixed version regardless of your configuration.

Are Ubuntu or Red Hat-family Linux affected too?

No. libzypp is a component used on openSUSE / SUSE Linux. Ubuntu and Debian use apt, and Red Hat-family systems (RHEL, Fedora, Rocky, etc.) use dnf/rpm β€” different mechanisms that are not the direct target of CVE-2026-25707.

How should I remediate?

Apply the distributed updates to bring libzypp to the latest version. By command line, that is zypper refresh followed by zypper update or zypper patch. If you cannot update right away, review your non-official add-on repositories and reconsider any using unencrypted paths to lower your interim risk.

Is it already being exploited?

As of July 23, 2026 (about a month after publication), we still have not confirmed any public report of real-world exploitation (such as listing in the U.S. CISA "Known Exploited Vulnerabilities" catalog). The flaw was found internally by the developer, who prepared a fix before disclosure. Even so, the severity is high, so updating early β€” before exploitation begins β€” is important.

Update history

  • β–ΈJune 29, 2026: First published (based on the NVD detail release for CVE-2026-25707 and SUSE's updates).
  • β–ΈJuly 23, 2026: Fully revised to reflect the current state. Added that fixes have finished shipping for each product (SUSE marks it "Resolved"), the same-family CVE-2026-44941 and CVE-2026-44942 found after publication, and that the end point including the related fixes is 17.38.13. Also updated the status showing no KEV listing or exploitation reports.

References

avatar-m-1

Makoto Horikawa

Backend Engineer / AWS / Django