OESA-2026-4154 (CVE-2026-86805)
Vulnerability from osv_openeuler – Published: 2026-09-30 13:47 – Updated: 2026-09-30 13:47 – Source websiteThe GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.
Security Fix(es):
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.(CVE-2026-86805)
A stack-based buffer overflow in the dynamic loader (ld.so) of the GNU C Library (glibc) versions 2.14 through 2.44 allows a local attacker to crash or corrupt the memory of setuid/setgid (AT_SECURE) programs.
When such a program's DT_RPATH or DT_RUNPATH begins with $ORIGIN and is followed by NUL or '/' the loader both reads past the end of the path buffer and writes past the end of a stack-allocated internal buffer. The corrupted loader stack can lead to a loader crash (denial of service) and limited disclosure of process memory.(CVE-2026-95818)
| URL | Type | |
|---|---|---|
{
"affected": [
{
"ecosystem_specific": {
"aarch64": [
"glibc-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-all-langpacks-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-common-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-debuginfo-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-debugsource-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-debugutils-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-devel-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-locale-archive-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-locale-source-2.38-128.oe2403sp3.aarch64.rpm",
"glibc-nss-devel-2.38-128.oe2403sp3.aarch64.rpm",
"libnsl-2.38-128.oe2403sp3.aarch64.rpm",
"nscd-2.38-128.oe2403sp3.aarch64.rpm",
"nss_modules-2.38-128.oe2403sp3.aarch64.rpm"
],
"noarch": [
"glibc-help-2.38-128.oe2403sp3.noarch.rpm"
],
"src": [
"glibc-2.38-128.oe2403sp3.src.rpm"
],
"x86_64": [
"glibc-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-all-langpacks-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-common-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-debuginfo-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-debugsource-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-debugutils-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-devel-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-locale-archive-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-locale-source-2.38-128.oe2403sp3.x86_64.rpm",
"glibc-nss-devel-2.38-128.oe2403sp3.x86_64.rpm",
"libnsl-2.38-128.oe2403sp3.x86_64.rpm",
"nscd-2.38-128.oe2403sp3.x86_64.rpm",
"nss_modules-2.38-128.oe2403sp3.x86_64.rpm"
]
},
"package": {
"ecosystem": "openEuler:24.03-LTS-SP3",
"name": "glibc",
"purl": "pkg:rpm/openEuler/glibc\u0026distro=openEuler-24.03-LTS-SP3"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.38-128.oe2403sp3"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"database_specific": {
"severity": "Medium"
},
"details": "The GNU C Library project provides the core libraries for the GNU system and GNU/Linux systems, as well as many other systems that use Linux as the kernel. These libraries provide critical APIs including ISO C11, POSIX.1-2008, BSD, OS-specific APIs and more. These APIs include such foundational facilities as open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit and more.\r\n\r\nSecurity Fix(es):\n\nA 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.\n\nExploitation requires an installed setuid or setgid binary whose DT_RPATH uses $ORIGIN followed by \u0026quot;..\u0026quot; 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.(CVE-2026-86805)\n\nA stack-based buffer overflow in the dynamic loader (ld.so) of the GNU C Library (glibc) versions 2.14 through 2.44 allows a local attacker to crash or corrupt the memory of setuid/setgid (AT_SECURE) programs.\n\nWhen such a program\u0026apos;s DT_RPATH or DT_RUNPATH begins with $ORIGIN and is followed by NUL or \u0026apos;/\u0026apos; the loader both reads past the end of the path buffer and writes past the end of a stack-allocated internal buffer. The corrupted loader stack can lead to a loader crash (denial of service) and limited disclosure of process memory.(CVE-2026-95818)",
"id": "OESA-2026-4154",
"modified": "2026-09-30T13:47:07Z",
"published": "2026-09-30T13:47:07Z",
"references": [
{
"type": "ADVISORY",
"url": "https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4154"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-86805"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-95818"
}
],
"schema_version": "1.7.2",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:L",
"type": "CVSS_V3"
}
],
"summary": "glibc security update",
"upstream": [
"CVE-2026-86805",
"CVE-2026-95818"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.