CVE-2026-54370: ACL Race Condition Privilege Escalation Vulnerability
The acl package before version 2.4.0 contains a race condition vulnerability that allows a local attacker with standard user privileges to escalate to higher privilege levels. The flaw exists in how the package checks file permissions: it verifies a file's access control list at one moment, then performs an operation on it moments later. An attacker can exploit the time between these two steps by swapping a symbolic link into place, causing the privileged process to operate on a file the attacker chooses rather than the intended target. Tools like getfacl, setfacl, and chacl become attack vectors when run by privileged processes over paths an attacker controls.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.3 MEDIUM · CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
- Weaknesses (CWE)
- CWE-367
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-29 / 2026-06-29
NVD description (verbatim)
acl before version 2.4.0 contains a time-of-check to time-of-use (TOCTOU) race condition vulnerability that allows local attackers to escalate privileges by replacing a pathname component with a symbolic link between an lstat() check and subsequent symlink-following operations such as stat(), chown(), chmod(), acl_get_file(), and acl_set_file(). Attackers who control a pathname component can redirect file access control list operations to arbitrary files when getfacl, setfacl, or chacl is invoked by a privileged process over an attacker-controlled path, resulting in local privilege escalation.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-54370 is a TOCTOU (time-of-check to time-of-use) race condition in the acl library's handling of symbolic links. The vulnerability occurs because the library calls lstat() to validate permissions on a path component, then later performs operations—including stat(), chown(), chmod(), acl_get_file(), or acl_set_file()—that follow symbolic links. An attacker with control over a pathname component in the attack surface can replace that component with a symlink between the validation and the operation, redirecting the privileged operation to an attacker-controlled file. This is a classic symlink attack pattern enabled by the window between security checks and actual file system operations. The race condition requires precise timing but is feasible in typical system configurations.
Business impact
Organizations running privileged processes that invoke acl utilities (getfacl, setfacl, chacl) over attacker-influenced paths face local privilege escalation risk. The impact is most severe in multi-user systems, shared hosting environments, and containerized deployments where unprivileged users can influence pathname inputs or monitor filesystem activity. A successful exploit allows an attacker to read sensitive file metadata, modify access control lists on system or user files, or expose confidential information protected by file permissions. While the attack requires local access and medium complexity execution, the outcome is substantial privilege elevation.
Affected systems
The acl package versions prior to 2.4.0 are affected. This includes POSIX ACL tools commonly found on Linux systems. The vulnerability is most relevant to systems where getfacl, setfacl, or chacl are executed with elevated privileges (via sudo, as root in scripts, or within privileged daemon processes) over paths that untrusted users can influence or monitor. Typical affected scenarios include system administration scripts, automated backup tools that preserve ACLs, and permission management workflows.
Exploitability
Exploiting this vulnerability requires local system access and the ability to monitor or influence filesystem operations in real time. The attacker must achieve precise timing to swap a symlink into place between the library's permission check and the subsequent file operation. The CVSS vector (AC:H) reflects the high complexity of the attack—it is not trivial, but feasible with careful coordination, particularly on systems with predictable I/O patterns or in controlled lab environments. Exploitation is not wormable or remotely exploitable; it remains strictly local.
Remediation
Upgrade the acl package to version 2.4.0 or later. Verify the version installed via your distribution's package manager (e.g., dpkg -l acl on Debian/Ubuntu, rpm -q acl on RHEL/CentOS). After upgrading, confirm that any scripts or automated processes invoking acl utilities continue to function as expected. Organizations should prioritize this update for systems where privileged processes operate on user-supplied or attacker-influenced paths.
Patch guidance
Apply the upgrade to acl 2.4.0 or later through your operating system's package manager. On Debian/Ubuntu, use apt-get update && apt-get upgrade acl. On RHEL/CentOS, use yum update acl or dnf upgrade acl. Verify the installed version matches or exceeds 2.4.0. Test any automation or scripts that depend on acl utilities after patching to ensure compatibility. If you maintain software that bundles acl, verify the upstream library version in your build.
Detection guidance
Monitor process execution logs (via auditd, syslog, or EDR tools) for invocations of getfacl, setfacl, and chacl, particularly when run with elevated privileges or over unusual paths. Use filesystem auditing (auditctl or fanotify) to detect rapid symlink creation and replacement in temporary or user-writable directories coinciding with acl utility execution. Review system logs for permission changes or file access anomalies following suspicious getfacl/setfacl calls. On high-value systems, consider process whitelisting or explicit approval workflows for privileged acl operations.
Why prioritize this
Although the CVSS score is MEDIUM (6.3), this vulnerability warrants prompt attention on multi-user systems and shared infrastructure. The flaw directly enables privilege escalation from unprivileged to privileged contexts, which violates core security boundaries. The complexity barrier (AC:H) makes opportunistic exploitation unlikely but targeted or environment-specific exploitation plausible. Prioritize patching systems where acl utilities are invoked by system services or scheduled tasks over attacker-controlled paths.
Risk score, explained
The CVSS 3.1 score of 6.3 (MEDIUM) reflects: local-only attack vector (AV:L), high complexity requiring race condition timing (AC:H), low privilege requirement (PR:L), no user interaction needed (UI:N), unchanged scope (S:U), high confidentiality impact (C:H—reading sensitive ACL metadata), high integrity impact (I:H—modifying file ACLs), and no availability impact (A:N). The high complexity ceiling prevents a critical score despite the privilege escalation outcome, because reliable exploitation requires precise environmental conditions and timing. In practice, the actual risk may vary significantly based on deployment posture.
Frequently asked questions
Can this vulnerability be exploited remotely?
No. This is a strictly local vulnerability requiring shell access or process execution on the affected system. It cannot be exploited over a network.
Do I need to upgrade if my acl utilities are never run by privileged processes?
If unprivileged users never invoke acl utilities, or if all acl operations are performed on paths under strict administrative control, your risk is significantly lower. However, upgrading to 2.4.0 remains prudent for defense-in-depth, as future deployment changes might alter the threat model.
What is a TOCTOU race condition and why is it hard to exploit?
TOCTOU (time-of-check to time-of-use) means a security check is performed at one moment, but the actual operation happens later—leaving a window where an attacker can change conditions. In this case, acl checks permissions with lstat() but operates with symlink-following calls, and an attacker must swap a symlink into place precisely during that window. This requires timing precision and system knowledge, hence the AC:H rating; but with patience or in controlled environments, it is achievable.
Should I be concerned about this in containerized environments?
Yes. Container escape scenarios or privilege escalation chains within multi-tenant containers could be facilitated by this flaw. If your containers run services that invoke acl utilities or if you allow unprivileged users to submit paths to privileged processes, prioritize patching.
This analysis is based on the published CVE record as of the date of this writing. Exploit code or detailed proof-of-concept steps are not provided. Organizations should verify vendor advisories and patch availability for their specific acl distribution or bundled deployment before applying changes. The CVSS score and vector reflect the official NVD assessment; actual organizational risk depends on deployment context, privilege boundaries, and attack surface exposure. No guarantee of exploit reliability or specific attack chain feasibility is implied. Source: NVD (public-domain), retrieved 2026-08-08. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2025-59610MEDIUMQualcomm Memory Corruption via IOCTL API Version Mismatch – Patch Guidance
- CVE-2026-13502MEDIUMANTLR4 Maven Plugin TOCTOU Vulnerability Guide
- CVE-2026-14160MEDIUMTOCTOU Race Condition in Samsung Escargot JavaScript Engine
- CVE-2026-20454MEDIUMMediaTek geniezone Race Condition Privilege Escalation (CVSS 6.4)
- CVE-2026-41568MEDIUMDocker & Moby Race Condition in docker cp Mount Setup
- CVE-2026-45619MEDIUMWWBN AVideo DNS-Rebinding SSRF Vulnerability
- CVE-2026-45647MEDIUMMicrosoft Defender for Endpoint Privilege Escalation Race Condition
- CVE-2026-46159MEDIUMLinux btrfs TOCTOU Race Condition Information Disclosure