Skip to main content

GNU C Library (glibc) CVE-2026-5928

| EUVDEUVD-2026-23980 HIGH
Buffer Under-read (CWE-127)
2026-04-20 glibc GHSA-829p-mc9m-7xhr
7.5
CVSS 3.1 · Vendor: glibc
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify target using glibc with legacy encoding
  2. Delivery
    Send crafted wide character input
  3. Exploit
    Trigger ungetwc() call
  4. Execution
    Exploit buffer pointer bug
  5. Persist
    Read out-of-bounds heap memory
  6. Impact
    Crash application or exfiltrate data

Vulnerability Assessment

Weakness
CWE
Exploitation Conditions

Application must explicitly call ungetwc() to push wide characters back onto a FILE stream opened in wide character mode (fwide() or wide-oriented functions like fgetwc()). The input character encoding must have overlaps between single-byte and multi-byte character representations-this excludes all standard Unicode encodings (UTF-8, UTF-16, UTF-32) where the bug cannot trigger per the description. Vulnerable encodings include certain legacy East Asian character sets like Shift-JIS, EUC-JP, EUC-KR, or EUC-CN where byte sequence ambiguity exists. For the NULL pointer crash scenario, the fp->_IO_read_ptr must be uninitialized, which occurs in specific stream initialization states. For information disclosure, heap memory layout must position sensitive data adjacent to the misused buffer region. These combined prerequisites significantly limit real-world exploitability-most modern applications use UTF-8 exclusively and many do not use wide character pushback operations. Applications processing user-supplied data in legacy encodings with wide stream APIs represent the highest-risk subset.

Impact

Real-world risk is significantly lower than the CVSS 7.5 score suggests due to multiple limiting factors. While CVSS indicates AV:N/AC:L/PR:N suggesting easy remote exploitation, the technical reality requires highly specific preconditions: applications must explicitly use ungetwc() for wide character pushback operations with non-Unicode character encodings having single-byte/multi-byte overlaps. The EPSS score of 0.02% (5th percentile) reflects security researchers' assessment that exploitation probability is extremely low despite theoretical network accessibility. The vulnerability is not listed in CISA KEV, indicating no confirmed active exploitation in real-world environments. The primary impact per CVSS is availability (A:H) with no confidentiality or integrity impact, though the description mentions potential heap data disclosure in specialized scenarios-this discrepancy suggests CVSS may underweight the information disclosure risk. The SSVC framework would likely classify this as 'defer' priority: technical impact is partial (DoS), exploitation is not automatable (requires specific encoding conditions), and no evidence of active exploitation exists. Most modern applications use UTF-8 or other Unicode encodings where this bug cannot trigger. Priority should focus on systems using legacy character encodings (certain East Asian encodings like Shift-JIS, EUC variants) with wide character stream operations.

Exploit ScenarioDerived

An attacker develops a network service client that sends specially crafted input to a server application using glibc for wide character stream processing with a legacy character encoding like Shift-JIS or EUC-JP. The malicious input triggers calls to ungetwc() during stream parsing, causing the buggy _IO_wdefault_pbackfail function to manipulate incorrect buffer pointers. If fp->_IO_read_ptr is uninitialized (NULL), the application crashes with a segmentation fault, enabling a denial-of-service attack against the server. In cases where the pointer is initialized but points to heap memory, the under-read may expose adjacent heap data structures, potentially leaking sensitive information like cryptographic keys, session tokens, or user data stored nearby in memory. The attack complexity is low from a network perspective (AV:N/AC:L) but requires the target application to use specific glibc stream functions with vulnerable character encodings.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 21, 2026

Out-of-bounds read in GNU C Library (glibc) versions 2.1.1 through 2.43 during wide character pushback operations can cause application crashes and potential information disclosure. The ungetwc() function incorrectly operates on the regular character buffer instead of the wide-stream buffer due to an implementation bug in _IO_wdefault_pbackfail, leading to reads before allocated memory regions. While CVSS rates this 7.5 High with network vector, EPSS exploitation probability is extremely low (0.02%, 5th percentile), reflecting the highly specialized conditions required: applications must use ungetwc() with character encodings having single-byte/multi-byte overlaps (not standard Unicode sets). No active exploitation confirmed (not in CISA KEV), no public exploit code identified at time of analysis.

RemediationAI

Upgrade to glibc version 2.44 or later when available, as the vulnerable code exists through version 2.43 according to EUVD data. Monitor the upstream glibc bug tracker at https://sourceware.org/bugzilla/show_bug.cgi?id=33998 for patch commits and release announcements. No vendor-released patched version confirmed at time of analysis-upstream fix development should be tracked through the referenced bugzilla entry. For systems that cannot immediately upgrade, implement these compensating controls with noted trade-offs: (1) Audit application code to identify use of ungetwc() on wide character streams and refactor to avoid pushback operations where possible-trade-off is development effort and potential logic changes; (2) Restrict applications to UTF-8 and standard Unicode encodings exclusively, disabling support for legacy character sets with single-byte/multi-byte overlaps (Shift-JIS, certain EUC variants)-trade-off is loss of legacy encoding support may break internationalization for older systems; (3) Deploy memory safety tools like AddressSanitizer in testing/staging environments to detect heap under-reads before production deployment-trade-off is performance overhead makes this unsuitable for production; (4) Enable kernel-level memory protection mechanisms (ASLR, heap hardening) to reduce information disclosure risk from heap reads-limited effectiveness as these don't prevent the crash condition.

Affected VersionsENISA

glibc 2.1.1-89 ≤2.43

Affected Packages

euvd glibc no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This vulnerability affects glibc's wide character stream handling in the standard I/O library (libio). The bug resides in _IO_wdefault_pbackfail within libio/wgenops.c, which implements the pushback mechanism for wide character streams (FILE streams opened in wide mode). When ungetwc() is called to push a wide character back onto the stream, the function erroneously manipulates fp->_IO_read_ptr (the narrow character buffer pointer) instead of fp->_wide_data->_IO_read_ptr (the wide character stream pointer). This causes buffer pointer arithmetic to operate on incorrect memory regions. The out-of-bounds read occurs because the function attempts to move the read pointer backward in memory without proper bounds checking against the actual allocated buffer. CWE-127 (Buffer Under-read) represents this class of memory safety issue where reads occur before the beginning of allocated memory regions. The vulnerability affects the core glibc library used by virtually all Linux-based systems and many Unix-like operating systems for fundamental C standard library operations.

Know when Glibc gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (glibc) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
SUSE HIGH
Red Hat 5.0 MEDIUM

Primary rating from Vendor (glibc).

CVSS VectorVendor: glibc

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
Patch released
Apr 29, 2026 - 02:30 nvd
Patch available
CVSS changed
Apr 21, 2026 - 20:22 NVD
7.5 (HIGH)
CVE Published
Apr 20, 2026 - 20:37 nvd
HIGH 7.5

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

GNU C Library (glibc) versions 2.1.1 through 2.43 contain an out-of-bounds read vulnerability in wide character stream operations that could cause application crashes or expose sensitive memory. While rated HIGH severity, the actual exploitation risk is minimal due to extremely narrow triggering conditions and zero confirmed active exploitation; however, organizations running older glibc versions should monitor for vendor patches, as long-lived systems may accumulate risk over time.

Business Impact: Low
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable or restrict ungetwc() function use in affected applications if source code access permits; (2) Limit exposure of affected systems to untrusted input sources; (3) Monitor application logs for crashes or segmentation faults; (4) Run affected services with memory protection (ASLR, DEP/NX) enabled to reduce information disclosure risk; (5) Subscribe to glibc security mailing list and your distribution's security advisories for patch release notifications.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Low
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Glibc

View all
CVE-2023-4911 HIGH POC
7.8 Oct 03

Local privilege escalation in the GNU C Library (glibc) dynamic loader ld.so allows unprivileged local users on affected

CVE-2015-0235 CRITICAL POC
10.0 Jan 28

Heap-based buffer overflow in the __nss_hostname_digits_dots function in glibc 2.2, and other 2.x versions before 2.18,

CVE-2024-2961 HIGH POC
7.3 Apr 17

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

CVE-2015-7547 HIGH POC
8.1 Feb 18

Multiple stack-based buffer overflows in the (1) send_dg and (2) send_vc functions in the libresolv library in the GNU C

CVE-2023-6246 HIGH POC
8.4 Jan 31

Local privilege escalation in GNU glibc 2.36 and newer arises from a heap-based buffer overflow in __vsyslog_internal, r

CVE-2014-5119 HIGH POC
7.5 Aug 29

Off-by-one error in the __gconv_translit_find function in gconv_trans.c in GNU C Library (aka glibc) allows context-depe

CVE-2012-4412 HIGH POC
7.5 Oct 09

Integer overflow in string/strcoll_l.c in the GNU C Library (aka glibc or libc6) 2.17 and earlier allows context-depende

CVE-2018-1000001 HIGH POC
7.8 Jan 31

In glibc 2.26 and earlier there is confusion in the usage of getcwd() by realpath() which can be used to write before th

CVE-2019-9169 CRITICAL POC
9.8 Feb 26

In the GNU C Library (aka glibc or libc6) through 2.29, proceed_next_node in posix/regexec.c has a heap-based buffer ove

CVE-2019-1010022 CRITICAL POC
9.8 Jul 15

GNU Libc current is affected by: Mitigation bypass. Rated critical severity (CVSS 9.8), this vulnerability is remotely e

CVE-2021-33574 CRITICAL POC
9.8 May 25

The mq_notify function in the GNU C Library (aka glibc) versions 2.32 and 2.33 has a use-after-free. Rated critical seve

CVE-2023-25139 CRITICAL POC
9.8 Feb 03

sprintf in the GNU C Library (glibc) 2.37 has a buffer overflow (out-of-bounds write) in some situations with a correct

Vendor StatusVendor

SUSE

Severity: High
Product Status
SLES15-SP5-CHOST-BYOS-SAP-CCloud Fixed
SLES15-SP6-CHOST-BYOS Fixed
SLES15-SP6-CHOST-BYOS-Aliyun Fixed
SLES15-SP6-CHOST-BYOS-Azure Fixed
SLES15-SP6-CHOST-BYOS-EC2 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy