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.
{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc-bin",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc-devtools",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-dev-s390",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-prof",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-s390",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "locales",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "locales-all",
"binary_version": "2.35-0ubuntu3.15"
},
{
"binary_name": "nscd",
"binary_version": "2.35-0ubuntu3.15"
}
]
}{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc-bin",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc-devtools",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-dev-s390",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-s390",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "locales",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "locales-all",
"binary_version": "2.39-0ubuntu8.9"
},
{
"binary_name": "nscd",
"binary_version": "2.39-0ubuntu8.9"
}
]
}{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc-bin",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc-devtools",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc-gconv-modules-extra",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "locales",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "locales-all",
"binary_version": "2.43-2ubuntu2.4"
},
{
"binary_name": "nscd",
"binary_version": "2.43-2ubuntu2.4"
}
]
}{
"binaries": [
{
"binary_name": "eglibc-source",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc-bin",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-armel",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-dev-armel",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-pic",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-prof",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "multiarch-support",
"binary_version": "2.19-0ubuntu6.15+esm4"
},
{
"binary_name": "nscd",
"binary_version": "2.19-0ubuntu6.15+esm4"
}
]
}{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc-bin",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-armel",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-dev-armel",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-dev-s390",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-pic",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-s390",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "locales",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "locales-all",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "multiarch-support",
"binary_version": "2.23-0ubuntu11.3+esm9"
},
{
"binary_name": "nscd",
"binary_version": "2.23-0ubuntu11.3+esm9"
}
]
}{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc-bin",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-armel",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-dev-armel",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-dev-s390",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-lse",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-pic",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-s390",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "locales",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "locales-all",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "multiarch-support",
"binary_version": "2.27-3ubuntu1.6+esm6"
},
{
"binary_name": "nscd",
"binary_version": "2.27-3ubuntu1.6+esm6"
}
]
}{
"binaries": [
{
"binary_name": "glibc-source",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc-bin",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc-dev-bin",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-amd64",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-armel",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-dev-amd64",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-dev-armel",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-dev-i386",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-dev-s390",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-dev-x32",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-i386",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-lse",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-pic",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-prof",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-s390",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "libc6-x32",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "locales",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "locales-all",
"binary_version": "2.31-0ubuntu9.18+esm1"
},
{
"binary_name": "nscd",
"binary_version": "2.31-0ubuntu9.18+esm1"
}
]
}