Every CVE Search/ Get API key

CVE-2017-16997

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and...

7.8 HighPublic exploitFix available

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

2.90%Down 0.5 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 7.8

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
CVE-2017-16997
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS 2.0
9.3 HighAV:N/AC:M/Au:N/C:C/I:C/A:C
Weakness
CWE-426
Updated
2026-11-02
CVE List No score

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
CVE-2017-16997
Updated
2026-11-02
EUVDEUVD-2017-8165 No score

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
EUVD-2017-8165
Updated
2026-11-03
GitHub AdvisoriesGHSA-q5m3-4jcg-c4rf 7.8

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and...

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
GHSA-q5m3-4jcg-c4rf
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-426
Updated
2026-11-02
OSV 7.8

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
CVE-2017-16997
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2017-16997 7.8

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
DEBIAN-CVE-2017-16997
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 7 moreShow less
OSVRHSA-2018:3092 7.8

Red Hat Security Advisory: glibc security, bug fix, and enhancement update

Record
RHSA-2018:3092
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2017-16997 7.8

elf/dl-load.c in the GNU C Library (aka glibc or libc6) 2.19 through 2.26 mishandles RPATH and RUNPATH containing $ORIGIN for a privileged (setuid or AT_SECURE) program, which allows local users to gain privileges via a Trojan horse library in the current working directory, related to the fillin_rpath and decompose_rpath functions. This is associated with misinterpretion of an empty RPATH/RUNPATH token as the "./" directory. NOTE: this configuration of RPATH/RUNPATH for a privileged program is apparently very uncommon; most likely, no such program is shipped with any common Linux distribution.

Record
UBUNTU-CVE-2017-16997
CVSS 3.0
7.8 HighCVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVMGASA-2018-0096 No score

Updated glibc packages fix security vulnerabilities

Updated glibc packages fix security vulnerabilities:

An issue in the code handling RPATHs was fixed that could have been exploited by an attacker to execute code loaded from arbitrary libraries (CVE-2017-16997).

A privilege escalation bug in the realpath() function when the getcwd() system call doesn't return a valid absolute pathname (CVE-2018-1000001).

Also, support for the C.UTF-8 locale has been added in the locales package.

Record
MGASA-2018-0096
Updated
2026-11-02
OSVMGASA-2018-0098 No score

Updated glibc packages fix security vulnerabilities

An issue in the code handling RPATHs was fixed that could have been exploited by an attacker to execute code loaded from arbitrary libraries (CVE-2017-16997).

A privilege escalation bug in the realpath() function when the getcwd() system call doesn't return a valid absolute pathname (CVE-2018-1000001).

Record
MGASA-2018-0098
Updated
2026-11-02
OSVopenSUSE-SU-2024:10792-1 No score

glibc-2.34-1.2 on GA media

These are all security issues fixed in the glibc-2.34-1.2 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:10792-1
Updated
2026-11-02
OSVSUSE-SU-2018:0074-1 No score

Security update for glibc

This update for glibc fixes the following issues:

  • A privilege escalation bug in the realpath() function has been fixed. [CVE-2018-1000001, bsc#1074293]

  • A memory leak and a buffer overflow in the dynamic ELF loader has been fixed. [CVE-2017-1000408, CVE-2017-1000409, bsc#1071319]

  • An issue in the code handling RPATHs was fixed that could have been exploited by an attacker to execute code loaded from arbitrary libraries. [CVE-2017-16997, bsc#1073231]

  • A potential crash caused by a use-after-free bug in pthread_create() has been fixed. [bsc#1053188]

  • A bug that prevented users to build shared objects which use the optimized libmvec.so API has been fixed. [bsc#1070905]

  • A memory leak in the glob() function has been fixed. [CVE-2017-15670, CVE-2017-15671, CVE-2017-15804, bsc#1064569, bsc#1064580, bsc#1064583]

  • A bug that would lose the syscall error code value in case of crashes has been fixed. [bsc#1063675]

Record
SUSE-SU-2018:0074-1
Updated
2026-11-02
OSVUSN-3534-1 No score

eglibc, glibc vulnerabilities

It was discovered that the GNU C library did not properly handle all of the possible return values from the kernel getcwd(2) syscall. A local attacker could potentially exploit this to execute arbitrary code in setuid programs and gain administrative privileges. (CVE-2018-1000001)

A memory leak was discovered in the _dl_init_paths() function in the GNU C library dynamic loader. A local attacker could potentially exploit this with a specially crafted value in the LD_HWCAP_MASK environment variable, in combination with CVE-2017-1000409 and another vulnerability on a system with hardlink protections disabled, in order to gain administrative privileges. (CVE-2017-1000408)

A heap-based buffer overflow was discovered in the _dl_init_paths() function in the GNU C library dynamic loader. A local attacker could potentially exploit this with a specially crafted value in the LD_LIBRARY_PATH environment variable, in combination with CVE-2017-1000408 and another vulnerability on a system with hardlink protections disabled, in order to gain administrative privileges. (CVE-2017-1000409)

An off-by-one error leading to a heap-based buffer overflow was discovered in the GNU C library glob() implementation. An attacker could potentially exploit this to cause a denial of service or execute arbitrary code via a maliciously crafted pattern. (CVE-2017-15670)

A heap-based buffer overflow was discovered during unescaping of user names with the ~ operator in the GNU C library glob() implementation. An attacker could potentially exploit this to cause a denial of service or execute arbitrary code via a maliciously crafted pattern. (CVE-2017-15804)

It was discovered that the GNU C library dynamic loader mishandles RPATH and RUNPATH containing $ORIGIN for privileged (setuid or AT_SECURE) programs. A local attacker could potentially exploit this by providing a specially crafted library in the current working directory in order to gain administrative privileges. (CVE-2017-16997)

It was discovered that the GNU C library malloc() implementation could return a memory block that is too small if an attempt is made to allocate an object whose size is close to SIZE_MAX, resulting in a heap-based overflow. An attacker could potentially exploit this to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 17.10. (CVE-2017-17426)

Record
USN-3534-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
glibc
Debian:12
before 2.25-6
2.25-6
glibc
Debian:13
before 2.25-6
2.25-6
glibc
Debian:14
before 2.25-6
2.25-6
glibc
Mageia:6
From an advisory covering 2 CVEs
before 2.22-27.mga6
2.22-27.mga6
locales
Mageia:6
From an advisory covering 2 CVEs
before 2.22-7.mga6
2.22-7.mga6
glibc
Mageia:5
From an advisory covering 2 CVEs
before 2.20-27.mga5
2.20-27.mga5
glibc
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-common
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo-common
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
Show 46 moreShow less
Affected packages
PackageAffectedFixed
glibc-devel
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-headers
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-utils
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
nscd
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-static
Red Hat:enterprise_linux:7::client
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-common
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo-common
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-devel
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-headers
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-utils
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
nscd
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-static
Red Hat:enterprise_linux:7::computenode
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-common
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo-common
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-devel
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-headers
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-utils
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
nscd
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-static
Red Hat:enterprise_linux:7::server
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-common
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-debuginfo-common
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-devel
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-headers
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-utils
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
nscd
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc-static
Red Hat:enterprise_linux:7::workstation
From an advisory covering 4 CVEs
before 0:2.17-260.el7
0:2.17-260.el7
glibc
SUSE:Linux Enterprise Desktop 12 SP2
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Desktop 12 SP3
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Software Development Kit 12 SP2
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Software Development Kit 12 SP3
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Server 12 SP2
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Server for SAP Applications 12 SP2
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Server 12 SP3
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
glibc
SUSE:Linux Enterprise Server for SAP Applications 12 SP3
From an advisory covering 7 CVEs
before 2.22-62.3.4
2.22-62.3.4
eglibc
Ubuntu:14.04:LTS
before 2.19-0ubuntu6.14, plus listed versions
2.17-93ubuntu42.18-0ubuntu12.18-0ubuntu22.18-0ubuntu42.18-0ubuntu5
Show 18 moreShow less
2.18-0ubuntu62.18-0ubuntu72.19-0ubuntu22.19-0ubuntu32.19-0ubuntu42.19-0ubuntu52.19-0ubuntu62.19-0ubuntu6.12.19-0ubuntu6.32.19-0ubuntu6.42.19-0ubuntu6.52.19-0ubuntu6.62.19-0ubuntu6.72.19-0ubuntu6.82.19-0ubuntu6.92.19-0ubuntu6.102.19-0ubuntu6.112.19-0ubuntu6.13
2.19-0ubuntu6.14
glibc
Ubuntu:16.04:LTS
before 2.23-0ubuntu10, plus listed versions
2.21-0ubuntu42.21-0ubuntu52.21-0ubuntu62.23-0ubuntu12.23-0ubuntu2
Show 6 moreShow less
2.23-0ubuntu32.23-0ubuntu42.23-0ubuntu52.23-0ubuntu62.23-0ubuntu72.23-0ubuntu9
2.23-0ubuntu10
eglibc
Ubuntu:14.04:LTS
From an advisory covering 7 CVEs
before 2.19-0ubuntu6.14, plus listed versions
2.17-93ubuntu42.18-0ubuntu12.18-0ubuntu22.18-0ubuntu42.18-0ubuntu5
Show 18 moreShow less
2.18-0ubuntu62.18-0ubuntu72.19-0ubuntu22.19-0ubuntu32.19-0ubuntu42.19-0ubuntu52.19-0ubuntu62.19-0ubuntu6.12.19-0ubuntu6.32.19-0ubuntu6.42.19-0ubuntu6.52.19-0ubuntu6.62.19-0ubuntu6.72.19-0ubuntu6.82.19-0ubuntu6.92.19-0ubuntu6.102.19-0ubuntu6.112.19-0ubuntu6.13
2.19-0ubuntu6.14
glibc
Ubuntu:16.04:LTS
From an advisory covering 7 CVEs
before 2.23-0ubuntu10, plus listed versions
2.21-0ubuntu42.21-0ubuntu52.21-0ubuntu62.23-0ubuntu12.23-0ubuntu2
Show 6 moreShow less
2.23-0ubuntu32.23-0ubuntu42.23-0ubuntu52.23-0ubuntu62.23-0ubuntu72.23-0ubuntu9
2.23-0ubuntu10
glibc
openSUSE:Tumbleweed
From an advisory covering 34 CVEs
before 2.34-1.2
2.34-1.2

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubXiami2012/CVE-2017-16997-poc2018-01-03

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2017-16997 is a high vulnerability (CVSS 7.8) in Gnu Glibc, published December 17, 2017. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 2.90%, the 87th percentile. Fixed in glibc 2.25-6.

References

Show 103 moreShow less
MoveEnter Open