CVE-2026-86805

Source
https://cve.org/CVERecord?id=CVE-2026-86805
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-86805.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-86805
Downstream
Published
2026-09-22T15:55:17Z
Modified
2026-09-23T03:47:27Z
Severity
  • 6.3 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:L CVSS Calculator
Summary
AT_SECURE programs may load attacker-controlled code via $ORIGIN
Details

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.

Database specific
{
    "cna_assigner":  "glibc",
    "cwe_ids":  [
        "CWE-367"
    ],
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/86xxx/CVE-2026-86805.json",
    "unresolved_ranges":  [
        {
            "extracted_events":  [
                {
                    "introduced":  "2.14"
                },
                {
                    "fixed":  "2.45"
                }
            ],
            "source":  "AFFECTED_FIELD"
        }
    ]
}
References

Affected packages

Git / sourceware.org/git/glibc.git

Affected ranges

Type
GIT
Repo
https://sourceware.org/git/glibc.git
Events
Database specific
Show details
{
    "extracted_events":  [
        {
            "introduced":  "2.14"
        },
        {
            "fixed":  "2.44"
        }
    ],
    "source":  "DESCRIPTION"
}

Affected versions

Other
changelog-ends-here
glibc-2.*
glibc-2.14
glibc-2.14.9000
glibc-2.15
glibc-2.16
glibc-2.16-ports-merge
glibc-2.16-tps
glibc-2.16.0
glibc-2.16.90
glibc-2.17
glibc-2.17.90
glibc-2.18
glibc-2.18.90
glibc-2.19
glibc-2.19.90
glibc-2.20
glibc-2.20.90
glibc-2.21
glibc-2.21.90
glibc-2.22
glibc-2.22.90
glibc-2.23
glibc-2.23.90
glibc-2.24
glibc-2.24.90
glibc-2.25
glibc-2.25.90
glibc-2.26
glibc-2.26.9000
glibc-2.27
glibc-2.27.9000
glibc-2.28
glibc-2.28.9000
glibc-2.29
glibc-2.29.9000
glibc-2.30
glibc-2.30.9000
glibc-2.31
glibc-2.31.9000
glibc-2.32
glibc-2.32.9000
glibc-2.33
glibc-2.33.9000
glibc-2.34
glibc-2.34.9000
glibc-2.35
glibc-2.35.9000
glibc-2.36
glibc-2.36.9000
glibc-2.37
glibc-2.37.9000
glibc-2.38
glibc-2.38.9000
glibc-2.39
glibc-2.39.9000
glibc-2.40
glibc-2.40.9000
glibc-2.41
glibc-2.41.9000
glibc-2.42
glibc-2.42.9000
glibc-2.43
glibc-2.43.9000

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-86805.json"