CVE-2026-4438
Medium · 5.4CVSS
5.4
EPSS
0.3%
Published
Mar 20, 2026
CISA due date
—
Cloudanix analysis
Some Linux systems may accept malformed reverse-DNS names, which can cause applications to trust, log, or act on misleading host information.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
GNU glibc versions 2.34 through 2.43 can return an invalid DNS hostname from gethostbyaddr() or gethostbyaddr_r() when name service resolution is configured through nsswitch.conf to use the DNS backend. The flaw is an input-validation weakness in reverse DNS handling: data returned from DNS may violate hostname syntax expectations but still be passed back to the calling application. The direct impact is not code execution; the risk depends on how downstream software consumes the returned hostname. Applications that treat reverse-DNS names as trusted identifiers, policy inputs, log fields, access-control labels, or display strings may make incorrect decisions or record misleading data.
Why it matters to the business
Systems using affected glibc versions may allow network-derived reverse-DNS data to influence application behavior in unexpected ways. The most likely operational consequences are misleading logs, incorrect host attribution, bypass or misapplication of hostname-based controls, and potential disruption to monitoring or auditing workflows. The CVSS score is moderate, EPSS is low, it is not listed in CISA KEV, and no public exploit maturity is reported, so broad emergency response is not indicated; however, the issue is relevant because glibc is a foundational library used widely across Linux systems and many applications may inherit the behavior without directly depending on DNS code.
How an attack unfolds
An attacker must be able to influence the reverse-DNS response seen by a vulnerable system, such as by controlling DNS records for an address that the target resolves, operating on a local or adjacent network where name resolution can be influenced, or otherwise causing the target to perform a reverse lookup against attacker-controlled DNS data. The target system must use an affected glibc release and have name service configuration that includes the DNS backend for host lookups. When an application calls gethostbyaddr() or gethostbyaddr_r(), glibc may return a hostname that does not conform to DNS hostname rules. Exploitation value comes from the receiving application: if it logs, trusts, parses, authorizes, filters, or displays that hostname without independent validation, the attacker may cause incorrect attribution, confuse analysts, poison logs, influence policy decisions, or trigger application-specific parsing flaws.
How to fix it
Upgrade GNU glibc to a vendor-provided version that contains the fix when available for the operating system or distribution in use. Because no exact upstream fixed version was provided in the input, use the security advisory and package version from the relevant Linux distribution as the source of truth. Prioritize internet-facing services, identity and access-control components, logging pipelines, monitoring systems, mail infrastructure, and any application that makes decisions based on reverse-DNS hostnames. As mitigations until patched, avoid relying on reverse DNS as an authentication or authorization signal, validate hostnames returned by resolver APIs before use, reject names that do not conform to DNS hostname syntax, and review /etc/nsswitch.conf to understand whether host lookups include the DNS backend. Application owners should defensively validate the output of gethostbyaddr() and gethostbyaddr_r() rather than assuming libc has sanitized the result.
How to confirm the fix worked
Confirm exposure by checking the installed glibc version and name service configuration. Systems running glibc 2.34 through 2.43 with host resolution configured to use DNS are potentially affected. On Linux systems, review commands such as `ldd --version`, distribution package queries for glibc/libc6, and `/etc/nsswitch.conf` entries for `hosts:` that include `dns`. Confirm remediation by verifying that the installed glibc package matches a vendor-fixed build and that affected services have been restarted or the host has been rebooted so long-running processes no longer use the vulnerable library mapping. For application-level validation, test that reverse-DNS responses containing invalid hostname syntax are rejected, normalized safely, or ignored before they influence logs, policy, or parsing logic.
Typical attack path
- Identify a target application or service that performs reverse DNS lookups through glibc gethostbyaddr() or gethostbyaddr_r().
- Ensure the target host uses an affected GNU glibc version between 2.34 and 2.43 and has nsswitch.conf configured to use the DNS backend for host resolution.
- Gain control over, or influence, the reverse-DNS data returned for an IP address the target will query.
- Craft reverse-DNS response data containing a hostname that violates expected DNS hostname syntax.
- Cause the target application to perform a reverse lookup on the attacker-influenced address.
- Rely on glibc returning the invalid hostname to the application.
- Abuse downstream handling, such as hostname-based trust decisions, log interpretation, alert routing, access-control logic, or parser behavior.
How to detect it
There are no universal host-based indicators that prove exploitation, because the vulnerability affects how applications receive reverse-DNS data and the observable artifacts depend on the calling application. To investigate possible prior exploitation, review DNS resolver logs, authoritative DNS logs, application logs, authentication logs, mail logs, proxy logs, SIEM enrichment records, and security tooling that records reverse-DNS hostnames. Look for hostnames returned from PTR lookups that contain invalid DNS hostname characters or formats, unexpected control characters, embedded whitespace, unusually long labels, leading or trailing hyphens, empty labels, shell metacharacters, URL-like strings, path separators, or names that caused parsing errors. Correlate suspicious PTR responses with application events where access decisions, alerts, account activity, mail handling, or logging attribution changed unexpectedly. Also review DNS traffic for reverse lookups under `in-addr.arpa` or `ip6.arpa` that receive malformed PTR answers from untrusted or unexpected DNS servers. Treat findings as application-specific leads rather than definitive proof of compromise.
What your security team should do
- Inventory Linux assets running GNU glibc 2.34 through 2.43, especially systems hosting services that perform reverse DNS lookups.
- Track operating-system vendor advisories and apply the vendor-fixed glibc/libc6 package as soon as it is available through standard patch channels.
- Prioritize patching systems where reverse DNS affects access control, authentication workflows, fraud controls, mail handling, SIEM enrichment, asset attribution, or security alerting.
- Review applications and scripts that use reverse-DNS results as trusted input; add explicit hostname syntax validation and avoid hostname-based authorization where possible.
- Check `/etc/nsswitch.conf` for `hosts:` entries containing `dns` to identify systems with the vulnerable resolution path enabled.
- Restart affected services or reboot patched systems to ensure processes are using the updated glibc library.
- Because EPSS is low, the vulnerability is not in CISA KEV, and no exploit maturity is reported, handle through prioritized patch management rather than emergency incident response unless suspicious DNS manipulation or hostname-based control bypasses are observed.
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | glibc | 0 | 2.43-r4 |
| Chainguard | glibc-dev | 0 | 2.43-r4 |
| Chainguard | glibc-iconv | 0 | 2.43-r4 |
| Chainguard | glibc-locale-ca | 0 | 2.43-r4 |
| Chainguard | glibc-locale-de | 0 | 2.43-r4 |
| Chainguard | glibc-locale-en | 0 | 2.43-r4 |
| Chainguard | glibc-locale-es | 0 | 2.43-r4 |
| Chainguard | glibc-locale-extra | 0 | 2.43-r4 |
| Chainguard | glibc-locale-fr | 0 | 2.43-r4 |
| Chainguard | glibc-locale-posix | 0 | 2.43-r4 |
| Chainguard | glibc-locales | 0 | 2.43-r4 |
| Chainguard | glibc-testresults | 0 | 2.43-r4 |
| Chainguard | glibc-tracing | 0 | 2.43-r4 |
| Chainguard | ld-linux | 0 | 2.43-r4 |
| Chainguard | libc-bin | 0 | 2.43-r4 |
| Chainguard | libcrypt1 | 0 | 2.43-r4 |
| Chainguard | localedef | 0 | 2.43-r4 |
| Chainguard | nscd | 0 | 2.43-r4 |
| Chainguard | nss-db | 0 | 2.43-r4 |
| Chainguard | nss-hesiod | 0 | 2.43-r4 |
| Chainguard | pcprofiledump | 0 | 2.43-r4 |
| Chainguard | posix-libc-utils | 0 | 2.43-r4 |
| Chainguard | posix-libc-utils-bin | 0 | 2.43-r4 |
| Chainguard | sln | 0 | 2.43-r4 |
| Chainguard | sotruss | 0 | 2.43-r4 |
| Chainguard | tzutils | 0 | 2.43-r4 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | glibc | 0 | 2.38-150600.14.46.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | glibc | 0 | 2.38-150600.14.46.1 |
| SUSE:Linux Enterprise Server 15 SP6-LTSS | glibc | 0 | 2.38-150600.14.46.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | glibc | 0 | 2.38-150600.14.46.1 |
| Wolfi | glibc | 0 | 2.43-r4 |
| Wolfi | glibc-dev | 0 | 2.43-r4 |
| Wolfi | glibc-iconv | 0 | 2.43-r4 |
| Wolfi | glibc-locale-ca | 0 | 2.43-r4 |
| Wolfi | glibc-locale-de | 0 | 2.43-r4 |
| Wolfi | glibc-locale-en | 0 | 2.43-r4 |
| Wolfi | glibc-locale-es | 0 | 2.43-r4 |
| Wolfi | glibc-locale-extra | 0 | 2.43-r4 |
| Wolfi | glibc-locale-fr | 0 | 2.43-r4 |
| Wolfi | glibc-locale-posix | 0 | 2.43-r4 |
| Wolfi | glibc-locales | 0 | 2.43-r4 |
| Wolfi | glibc-testresults | 0 | 2.43-r4 |
| Wolfi | glibc-tracing | 0 | 2.43-r4 |
| Wolfi | ld-linux | 0 | 2.43-r4 |
| Wolfi | libc-bin | 0 | 2.43-r4 |
| Wolfi | libcrypt1 | 0 | 2.43-r4 |
| Wolfi | localedef | 0 | 2.43-r4 |
| Wolfi | nscd | 0 | 2.43-r4 |
| Wolfi | nss-db | 0 | 2.43-r4 |
| Wolfi | nss-hesiod | 0 | 2.43-r4 |
| Wolfi | pcprofiledump | 0 | 2.43-r4 |
| Wolfi | posix-libc-utils | 0 | 2.43-r4 |
| Wolfi | posix-libc-utils-bin | 0 | 2.43-r4 |
| Wolfi | sln | 0 | 2.43-r4 |
| Wolfi | sotruss | 0 | 2.43-r4 |
| Wolfi | tzutils | 0 | 2.43-r4 |
| openSUSE:Leap 15.6 | glibc | 0 | 2.38-150600.14.46.1 |
| openSUSE:Leap 16.0 | glibc | 0 | 2.40-160000.4.1 |
| openSUSE:Leap 16.0 | glibc-cross-aarch64-src | 0 | 2.40-160000.4.1 |
| openSUSE:Leap 16.0 | glibc-cross-ppc64le-src | 0 | 2.40-160000.4.1 |
| openSUSE:Leap 16.0 | glibc-cross-riscv64-src | 0 | 2.40-160000.4.1 |
| openSUSE:Leap 16.0 | glibc-cross-s390x-src | 0 | 2.40-160000.4.1 |
| openSUSE:Tumbleweed | glibc | 0 | 2.43-1.1 |
Related vulnerabilities
- CVE-2026-4437 Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf that specifies… Also affects glibc
- CVE-2025-15281 Calling wordexp with WRDE_REUSE in conjunction with WRDE_APPEND in the GNU C Library… Also affects glibc
- CVE-2023-6246 A heap-based buffer overflow was found in the __vsyslog_internal function of the glibc… Also affects glibc
- CVE-2023-6780 An integer overflow was found in the __vsyslog_internal function of the glibc library. Also affects glibc
- CVE-2023-6779 An off-by-one heap-based buffer overflow was found in the __vsyslog_internal function of… Also affects glibc
- CVE-2026-6238 The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the GNU C Library… Also affects glibc
- CVE-2026-5435 The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the GNU C Library… Also affects glibc
- CVE-2026-5450 Calling the scanf family of functions with a %mc (malloc'd character match) in the GNU C… Also affects glibc