runc: UNIX Symbolic Link (Symlink) Following
CVE-2025-31133 is a high-severity UNIX symbolic link (symlink) following vulnerability in runc from Opencontainers, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. Affected runc versions: < 1.2.8; >= 1.3.0-rc.1, < 1.3.3; >= 1.4.0-rc.1, <= 1.4.0-rc.3. The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 1.24% chance of exploitation within 30 days, higher than 70% of scored CVEs.
High severity with no evidence of exploitation so far.
What to do
- Check which version of runc you run against the affected versions below, and install the vendor's latest release.
- Read the advisory on github.com for workarounds and exact fixed builds.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Opencontainers | runc | < 1.2.8; >= 1.3.0-rc.1, < 1.3.3; >= 1.4.0-rc.1, <= 1.4.0-rc.3 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- HighSuccess depends on conditions outside the attacker's control.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- ChangedThe attack can reach beyond the vulnerable component into other systems.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H. Scored by NVD.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 4.0 | 7.3 | High | CNA (github.com) |
| CVSS 3.1 | 7.8 | High | NVD |
Official description
runc is a CLI tool for spawning and running containers according to the OCI specification. In versions 1.2.7 and below, 1.3.0-rc.1 through 1.3.1, 1.4.0-rc.1 and 1.4.0-rc.2 files, runc would not perform sufficient verification that the source of the bind-mount (i.e., the container's /dev/null) was actually a real /dev/null inode when using the container's /dev/null to mask. This exposes two methods of attack: an arbitrary mount gadget, leading to host information disclosure, host denial of service, container escape, or a bypassing of maskedPaths. This issue is fixed in versions 1.2.8, 1.3.3 and 1.4.0-rc.3.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: UNIX Symbolic Link (Symlink) Following
The product, when opening a file or directory, does not sufficiently account for when the file is a symbolic link that resolves to a target outside of the intended control sphere. This could allow an attacker to cause the product to operate on unauthorized files.
How developers prevent this class of flaw
- Symbolic link attacks often occur when a program creates a tmp directory that stores files/links. Access to the directory should be restricted to the program as to prevent attackers from manipulating the files.
- Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.
More UNIX Symbolic Link (Symlink) Following vulnerabilities (CWE-61)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
- Record last changed materially (score, affected products, status or references).
References
Advisories
- github.com/opencontainers/runc/security/advisories/GHSA-9493-h29p-rfm2Mitigation, Third Party Advisory
Patches and release notes
- github.com/opencontainers/runc/commit/1a30a8f3d921acbbb6a4bb7e99da2c05f8d48522
- github.com/opencontainers/runc/commit/5d7b2424072449872d1cd0c937f2ca25f418eb66
- github.com/opencontainers/runc/commit/8476df83b534a2522b878c0507b3491def48db9f
- github.com/opencontainers/runc/commit/db19bbed5348847da433faa9d69e9f90192bfa64
Other vulnerabilities in runc
- 7.5 High severity
- 7.5 High severity
- 8.6 High severity
- 7.8 High severity
- 7.8 High severity
Recent UNIX Symbolic Link (Symlink) Following vulnerabilities
- 10.0 Critical severity
- 10.0 Critical severity
- 7.1 High severity
- 8.5 High severity
- 8.7 High severity
- 7.0 High severity
Spotted an error? Tell us.