Name
glibc
Version
2.39+git
Type
library
Description
GLIBC (GNU C Library)
Licenses
GPL-2.0-only & LGPL-2.1-or-later
PURL
-
CPE
cpe:2.3:*:gnu:glibc:2.39+git:*:*:*:*:*:*:*
Other Versions#
Patches#
#
Title
Author
Resolve
1
nativesdk-glibc: Allow 64 bit atomics for x86
Khem Raj <raj.khem@gmail.com>
2
eglibc: Help bootstrap cross toolchain
Khem Raj <raj.khem@gmail.com>
3
eglibc: Forward port cross locale generation support
Khem Raj <raj.khem@gmail.com>
4
localedef --add-to-archive uses a hard-coded locale path
Khem Raj <raj.khem@gmail.com>
5
timezone: Make shell interpreter overridable in tzselect.ksh
Khem Raj <raj.khem@gmail.com>
6
tzselect.ksh: Use /bin/sh default shell interpreter
Khem Raj <raj.khem@gmail.com>
7
wordsize.h: Unify the header between arm and aarch64
Khem Raj <raj.khem@gmail.com>
8
powerpc: Do not ask compiler for finding arch
Khem Raj <raj.khem@gmail.com>
9
fix create thread failed in unprivileged process [BZ #28287]
Hongxu Jia <hongxu.jia@windriver.com>
10
eglibc: Cross building and testing instructions
Khem Raj <raj.khem@gmail.com>
11
sysdeps/gnu/configure.ac: Set libc_cv_rootsbindir only if its
Khem Raj <raj.khem@gmail.com>
12
nativesdk-glibc: Fix buffer overrun with a relocated SDK
Khem Raj <raj.khem@gmail.com>
13
eglibc: Resolve __fpscr_values on SH4
Khem Raj <raj.khem@gmail.com>
14
nativesdk-glibc: Look for host system ld.so.cache as well
Khem Raj <raj.khem@gmail.com>
15
Patch #15
Yash Shinde <Yash.Shinde@windriver.com>
16
localedef: Add hardlink resolver from util-linux
Jason Wessel <jason.wessel@windriver.com>
17
nativesdk-glibc: Make relocatable install for locales
Khem Raj <raj.khem@gmail.com>
18
'yes' within the path sets wrong config variables
Khem Raj <raj.khem@gmail.com>
19
localedef: fix-ups hardlink to make it compile
Jason Wessel <jason.wessel@windriver.com>
20
Replace echo with printf builtin in nscd init script
Khem Raj <raj.khem@gmail.com>
21
stdlib: Add single-threaded fast path to rand()
Wilco Dijkstra <wilco.dijkstra@arm.com>
22
Avoid hardcoded build time paths in the output binaries
Richard Purdie <richard.purdie@linuxfoundation.org>
23
nativesdk-glibc: Fall back to faccessat on faccess2 returns
Khem Raj <raj.khem@gmail.com>
24
nativesdk-glibc: Raise the size of arrays containing dl paths
Khem Raj <raj.khem@gmail.com>
Vulnerabilities#
Name
Analysis
Description
Exploitable
The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the GNU C Library version 2.0.1 to version 2.43 fail to validate the RDATA content against the RDATA length in a DNS response when processing A6, CERT, LOC, TKEY or TSIG records, which may allow an attacker to craft a DNS response, causing a target application to crash or read uninitialized memory.
These functions are for application debugging only and hence not in the path of code executed by the DNS resolver. Further, they have been deprecated since version 2.34 and should not be used by any new applications. Applications should consider porting away from these interfaces since they may be removed in future versions.
Exploitable
Calling the ungetwc function on a FILE stream with wide characters encoded in a character set that has overlaps between its single byte and multi-byte character encodings, in the GNU C Library version 2.43 or earlier, may result in an attempt to read bytes before an allocated buffer, potentially resulting in unintentional disclosure of neighboring data in the heap, or a program crash.
A bug in the wide character pushback implementation (_IO_wdefault_pbackfail in libio/wgenops.c) causes ungetwc() to operate on the regular character buffer (fp->_IO_read_ptr) instead of the actual wide-stream read pointer (fp->_wide_data->_IO_read_ptr). The program crash may happen in cases where fp->_IO_read_ptr is not initialized and hence points to NULL. The buffer under-read requires a special situation where the input character encoding is such that there are overlaps between single byte representations and multibyte representations in that encoding, resulting in spurious matches. The spurious match case is not possible in the standard Unicode character sets.
Exploitable
Calling the scanf family of functions with a %mc (malloc'd character match) in the GNU C Library version 2.7 to version 2.43 with a format width specifier with an explicit width greater than 1024 could result in a one byte heap buffer overflow.
Exploitable
The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the GNU C Library version 2.2 and newer fail to enforce the caller-supplied buffer length, and can result in an out-of-bounds write when printing TSIG records.
Exploitable
Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf that specifies the library's DNS backend in the GNU C library version 2.34 to version 2.43 could result in an invalid DNS hostname being returned to the caller in violation of the DNS specification.
Exploitable
Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf that specifies the library's DNS backend in the GNU C Library version 2.34 to version 2.43 could, with a crafted response from the configured DNS server, result in a violation of the DNS specification that causes the application to treat a non-answer section of the DNS response as a valid answer.
Exploitable
The iconv() function in the GNU C Library versions 2.43 and earlier may crash due to an assertion failure when converting inputs from the IBM1390 or IBM1399 character sets, which may be used to remotely crash an application.
This vulnerability can be trivially mitigated by removing the IBM1390 and IBM1399 character sets from systems that do not need them.
Exploitable
Calling getnetbyaddr or getnetbyaddr_r with a configured nsswitch.conf that specifies the library's DNS backend for networks and queries for a zero-valued network in the GNU C Library version 2.0 to version 2.42 can leak stack contents to the configured DNS resolver.
Exploitable
Passing too large an alignment to the memalign suite of functions (memalign, posix_memalign, aligned_alloc) in the GNU C Library version 2.30 to 2.42 may result in an integer overflow, which could consequently result in a heap corruption.
Note that the attacker must have control over both, the size as well as the alignment arguments of the memalign function to be able to exploit this. The size parameter must be close enough to PTRDIFF_MAX so as to overflow size_t along with the large alignment argument. This limits the malicious inputs for the alignment for memalign to the range [1<<62+ 1, 1<<63] and exactly 1<<63 for posix_memalign and aligned_alloc.
Typically the alignment argument passed to such functions is a known constrained quantity (e.g. page size, block size, struct sizes) and is not attacker controlled, because of which this may not be easily exploitable in practice. An application bug could potentially result in the input alignment being too large, e.g. due to a different buffer overflow or integer overflow in the application or its dependent libraries, but that is again an uncommon usage pattern given typical sources of alignments.
Exploitable
The strcmp implementation optimized for the Power10 processor in the GNU C Library version 2.39 and later writes to vector registers v20 to v31 without saving contents from the caller (those registers are defined as non-volatile registers by the powerpc64le ABI), resulting in overwriting of its contents and potentially altering control flow of the caller, or leaking the input strings to the function to other parts of the program.
Exploitable
Calling wordexp with WRDE_REUSE in conjunction with WRDE_APPEND in the GNU C Library version 2.0 to version 2.42 may cause the interface to return uninitialized memory in the we_wordv member, which on subsequent calls to wordfree may abort the process.
Exploitable
nscd: netgroup cache assumes NSS callback uses in-buffer strings
The Name Service Cache Daemon's (nscd) netgroup cache can corrupt memory
when the NSS callback does not store all strings in the provided buffer.
The flaw was introduced in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
Exploitable
nscd: netgroup cache may terminate daemon on memory allocation failure
The Name Service Cache Daemon's (nscd) netgroup cache uses xmalloc or
xrealloc and these functions may terminate the process due to a memory
allocation failure resulting in a denial of service to the clients. The
flaw was introduced in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
Exploitable
nscd: Null pointer crashes after notfound response
If the Name Service Cache Daemon's (nscd) cache fails to add a not-found
netgroup response to the cache, the client request can result in a null
pointer dereference. This flaw was introduced in glibc 2.15 when the
cache was added to nscd.
This vulnerability is only present in the nscd binary.
Exploitable
nscd: Stack-based buffer overflow in netgroup cache
If the Name Service Cache Daemon's (nscd) fixed size cache is exhausted
by client requests then a subsequent client request for netgroup data
may result in a stack-based buffer overflow. This flaw was introduced
in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
Exploitable
The iconv() function in the GNU C Library versions 2.39 and older may overflow the output buffer passed to it by up to 4 bytes when converting strings to the ISO-2022-CN-EXT character set, which may be used to crash an application or overwrite a neighbouring variable.
Exploitable
The glob implementation in the GNU C Library (aka glibc or libc6) allows remote authenticated users to cause a denial of service (CPU and memory consumption) via crafted glob expressions that do not match any pathnames, as demonstrated by glob expressions in STAT commands to an FTP daemon, a different vulnerability than CVE-2010-2632.