CVE-2026-86805 PUBLISHED

AT_SECURE programs may load attacker-controlled code via $ORIGIN

Assigner: glibc
Reserved: 08.09.2026 Published: 22.09.2026 Updated: 22.09.2026

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.

Metrics

CVSS Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 7

Product Status

Vendor The GNU C Library
Product glibc
Versions Default: unaffected
  • affected from 2.14 to 2.45 (excl.)

Credits

  • Jann Horn finder

References

Problem Types

  • CWE-367 Time-of-check time-of-use (TOCTOU) race condition CWE

Impacts

  • CAPEC-233 Privilege Escalation