Description
A time-of-check to time-of-use (TOCTOU) race condition in the dynamic loader (ld.so) of the GNU C Library (glibc) versions 2.14 through 2.44 allows a local attacker to escalate privileges. When expanding $ORIGIN in DT_RPATH for setuid/setgid (AT_SECURE) programs, glibc validates the lexically normalized search path against the trusted directories but then opens the raw, un-normalized path. On systems where the Linux fs.protected_hardlinks sysctl is disabled, a local attacker who hard-links such a program into an attacker-controlled directory and wins a race to replace an intermediate path component with a symbolic link can direct the loader outside the trusted directory, causing it to load an attacker-controlled shared object and execute arbitrary code with the elevated privileges of the program.

Exploitation requires an installed setuid or setgid binary whose DT_RPATH uses $ORIGIN followed by ".." traversal that normalizes into a trusted directory, and the ability to hard-link that binary and win the race by swapping a path component for a symbolic link. Major Linux-based OS distributions ship with fs.protected_hardlinks enabled by default and mitigate the vulnerability.
Published: 2026-09-22
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Local privilege escalation via loading attacker‑controlled shared objects
Action: Immediate patch
AI Analysis

Impact

The glibc dynamic loader contains a time‑of‑check to time‑of‑use race that can be exploited when the AT_SECURE flag is set. During $ORIGIN expansion in DT_RPATH, the loader verifies a normalized path against trusted directories but then opens the raw, un‑normalized path. A local attacker can place a setuid or setgid binary in a directory they control, hard‑link it so that the race wins, then replace an intermediate component with a symbolic link. This forces the loader to resolve a path outside the trusted directory and load an attacker‑controlled shared object, which runs with the privilege of the binary. The flaw does not allow remote exploitation and requires that fs.protected_hardlinks be disabled, a setting that most production systems enable by default.

Affected Systems

Vulnerable products are the GNU C Library (glibc) versions 2.14 through 2.44 on any Linux‑based distribution that ships setuid or setgid executables whose DT_RPATH uses $ORIGIN followed by ".." traversal. Populated systems often include common distributions such as Red Hat, Ubuntu, Debian, and CentOS where glibc is shared across many applications.

Risk and Exploitability

The CVSS score of 6.3 reflects a moderate severity, but the exploit requires a local attacker with the ability to hard‑link a specific binary and a system where the protective sysctl is disabled. Because major distributions enable fs.protected_hardlinks by default and the vulnerability is not listed in CISA KEV, the current risk is lower than the theoretical impact would suggest. Nonetheless, the flaw can be leveraged to execute arbitrary code with elevated privileges if conditions are met. Administrators must consider the local environment and whether setuid binaries with $ORIGIN and traversal are present, and should review the EPSS inquiry or vendor advisories for updated metrics.

Generated by OpenCVE AI on September 22, 2026 at 17:20 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the glibc update provided in GLIBC-SA-2026‑0022, which removes the race condition and corrects path handling for $ORIGIN in AT_SECURE binaries.
  • If a patch cannot be applied immediately, enable the kernel protection by setting fs.protected_hardlinks to 1, which prevents symbolic‑link replacement of hard‑linked files and mitigates the race condition.
  • As a temporary containment, rename or remove any setuid/setgid binaries that contain $ORIGIN followed by ".." in their DT_RPATH until a patch or kernel protection can be applied.

Generated by OpenCVE AI on September 22, 2026 at 17:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 23 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 22 Sep 2026 18:15:00 +0000

Type Values Removed Values Added
First Time appeared The Gnu C Library
The Gnu C Library glibc
Vendors & Products The Gnu C Library
The Gnu C Library glibc

Tue, 22 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 22 Sep 2026 16:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 6.3, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:L'}


Tue, 22 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description A time-of-check to time-of-use (TOCTOU) race condition in the dynamic loader (ld.so) of the GNU C Library (glibc) versions 2.14 through 2.44 allows a local attacker to escalate privileges. When expanding $ORIGIN in DT_RPATH for setuid/setgid (AT_SECURE) programs, glibc validates the lexically normalized search path against the trusted directories but then opens the raw, un-normalized path. On systems where the Linux fs.protected_hardlinks sysctl is disabled, a local attacker who hard-links such a program into an attacker-controlled directory and wins a race to replace an intermediate path component with a symbolic link can direct the loader outside the trusted directory, causing it to load an attacker-controlled shared object and execute arbitrary code with the elevated privileges of the program. Exploitation requires an installed setuid or setgid binary whose DT_RPATH uses $ORIGIN followed by ".." traversal that normalizes into a trusted directory, and the ability to hard-link that binary and win the race by swapping a path component for a symbolic link. Major Linux-based OS distributions ship with fs.protected_hardlinks enabled by default and mitigate the vulnerability.
Title AT_SECURE programs may load attacker-controlled code via $ORIGIN
Weaknesses CWE-367
References
Metrics cvssV3_1

{'score': 7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

The Gnu C Library Glibc
cve-icon MITRE

Status: PUBLISHED

Assigner: glibc

Published:

Updated: 2026-09-23T03:55:58.505Z

Reserved: 2026-09-08T12:56:00.982Z

Link: CVE-2026-86805

cve-icon Vulnrichment

Updated: 2026-09-22T16:41:31.616Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-22T16:18:06.230

Modified: 2026-09-23T04:17:57.137

Link: CVE-2026-86805

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-22T15:55:17Z

Links: CVE-2026-86805 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-22T18:00:16Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition