Skip to content
Fencer Vulns
high 7.5

CVE-2026-25121 json

apko is vulnerable to path traversal in apko dirFS which allows filesystem writes outside base

published 2026-02-03 9 mo ago modified 2026-09-10 1 mo ago also GHSA-5g94-c2wx-8pxw , GO-2026-4405 , EUVD-2026-5380

cvss
7.5
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 35%
public exploits
0
none known

Summary

apko allows users to build and publish OCI container images built from apk packages. From version 0.14.8 to before 1.1.1, a path traversal vulnerability was discovered in apko's dirFS filesystem abstraction. An attacker who can supply a malicious APK package (e.g., via a compromised or typosquatted repository) could create directories or symlinks outside the intended installation root. The MkdirAll, Mkdir, and Symlink methods in pkg/apk/fs/rwosfs.go use filepath.Join() without validating that the resulting path stays within the base directory. This issue has been patched in version 1.1.1.

Patch / fix

  • go chainguard.dev/apko 1.1.0
  • chainguard apko 1.1.1
  • govulncheck-vulndb openSUSE Leap 15.6 0.0.20260205T172317-150000.1.146.1

suse advisories SUSE-SU-2026:0403-1

  • govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1

opensuse advisories openSUSE-SU-2026:21483-1

CISA SSVC

Exploitation
none
Automatable
yes
Technical impact
partial
Assessed
9 mo ago

Exploit prediction

0.41% chance of exploitation in the next 30 days, higher than 35% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
GitHub 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Affected packages

ecosystem package affected fixed in
go chainguard.dev/apko
>=0.14.8, <1.1.0
1.1.0

Affected products

  • chainguard-dev apko

Classification

Weakness
  • CWE-23 Relative Path Traversal
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.