CVE-2015-7547
High · 8.1CVSS
8.1
EPSS
91.0%
Published
Feb 18, 2016
CISA due date
—
Cloudanix analysis
A core library used by many programs on Linux systems contains a flaw that lets attackers remotely crash machines or take control by sending specially crafted internet address data.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Stack-based buffer overflows in send_dg and send_vc functions of libresolv allow remote code execution or denial of service when getaddrinfo is called with AF_UNSPEC or AF_INET6 during dual A/AAAA DNS queries.
Why it matters to the business
Affected Linux systems and dependent applications face remote crashes or full compromise, risking service outages, data breaches, and operational disruption across enterprise and cloud environments with high ecosystem prevalence.
How an attack unfolds
An attacker supplies a crafted DNS response that triggers the overflow when a vulnerable application invokes getaddrinfo; high EPSS and public exploit maturity enable rapid weaponization by threat actors for initial access or denial of service.
How to fix it
Upgrade glibc to version 2.23 or newer on all affected distributions; rebuild and restart services linked against the vulnerable library.
How to confirm the fix worked
Confirm installed glibc version meets or exceeds 2.23; perform functional testing of DNS resolution with mixed IPv4/IPv6 queries and review build logs for updated NSS modules.
Typical attack path
- Position malicious DNS resolver or intercept legitimate responses
- Send oversized or malformed DNS packet during address resolution
- Trigger getaddrinfo call with AF_UNSPEC or AF_INET6
- Overflow stack buffer in libresolv leading to crash or code execution
How to detect it
Review application and system logs for segmentation faults or crashes during DNS lookups; inspect network captures for unusually large or malformed DNS responses targeting resolver traffic.
What your security team should do
- Prioritize patching glibc across all Linux hosts given high EPSS and exploit availability
- Inventory and update downstream packages that depend on the affected library
- Implement network controls to limit exposure of DNS resolvers until patches are deployed
The record
Multiple stack-based buffer overflows in the (1) send_dg and (2) send_vc functions in the libresolv library in the GNU C Library (aka glibc or libc6) before 2.23 allow remote attackers to cause a denial of service (crash) or possibly execute arbitrary code via a crafted DNS response that triggers a call to the getaddrinfo function with the AF_UNSPEC or AF_INET6 address family, related to performing "dual A/AAAA DNS queries" and the libnss_dns.so.2 NSS module.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | glibc | 0 | 2.21-8 |
| Debian:12 | glibc | 0 | 2.21-8 |
| Debian:13 | glibc | 0 | 2.21-8 |
| Debian:6.0 | eglibc | 0 | 2.11.3-4+deb6u11 |
| Debian:7 | eglibc | 0 | 2.13-38+deb7u10 |
| Debian:8 | glibc | 0 | 2.19-18+deb8u3 |
| Mageia:5 | glibc | 0 | 2.20-21.mga5 |
| Red Hat:enterprise_linux:6::client | glibc | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-debuginfo | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-debuginfo-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-devel | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-headers | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-static | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | glibc-utils | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::client | nscd | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-debuginfo | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-debuginfo-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-devel | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-headers | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-static | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | glibc-utils | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::computenode | nscd | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::hypervisor | rhev-hypervisor6 | 0 | 0:6.7-20160104.2.el6ev |
| Red Hat:enterprise_linux:6::hypervisor | rhev-hypervisor7 | 0 | 0:7.2-20160105.2.el6ev |
| Red Hat:enterprise_linux:6::server | glibc | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-debuginfo | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-debuginfo-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-devel | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-headers | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-static | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | glibc-utils | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::server | nscd | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-debuginfo | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-debuginfo-common | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-devel | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-headers | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-static | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | glibc-utils | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:6::workstation | nscd | 0 | 0:2.12-1.166.el6_7.7 |
| Red Hat:enterprise_linux:7::client | glibc | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-debuginfo | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-debuginfo-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-devel | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-headers | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-static | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | glibc-utils | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::client | nscd | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-debuginfo | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-debuginfo-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-devel | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-headers | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-static | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | glibc-utils | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::computenode | nscd | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::hypervisor | rhev-hypervisor7 | 0 | 0:7.2-20160105.2.el7ev |
| Red Hat:enterprise_linux:7::server | glibc | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-debuginfo | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-debuginfo-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-devel | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-headers | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-static | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | glibc-utils | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::server | nscd | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-debuginfo | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-debuginfo-common | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-devel | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-headers | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-static | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | glibc-utils | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:enterprise_linux:7::workstation | nscd | 0 | 0:2.17-106.el7_2.4 |
| Red Hat:rhel_aus:6.4::server | glibc | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-common | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-debuginfo | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-debuginfo-common | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-devel | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-headers | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-static | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | glibc-utils | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.4::server | nscd | 0 | 0:2.12-1.107.el6_4.9 |
| Red Hat:rhel_aus:6.5::server | glibc | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-common | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-debuginfo | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-debuginfo-common | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-devel | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-headers | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-static | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | glibc-utils | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_aus:6.5::server | nscd | 0 | 0:2.12-1.132.el6_5.7 |
| Red Hat:rhel_eus:6.6::computenode | glibc | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-common | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-debuginfo | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-debuginfo-common | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-devel | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-headers | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-static | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | glibc-utils | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::computenode | nscd | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-common | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-debuginfo | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-debuginfo-common | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-devel | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-headers | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-static | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | glibc-utils | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:6.6::server | nscd | 0 | 0:2.12-1.149.el6_6.11 |
| Red Hat:rhel_eus:7.1::computenode | glibc | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-common | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-debuginfo | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-debuginfo-common | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-devel | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-headers | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-static | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | glibc-utils | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::computenode | nscd | 0 | 0:2.17-79.el7_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-common | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-debuginfo | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-debuginfo-common | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-devel | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-headers | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-static | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | glibc-utils | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_eus:7.1::server | nscd | 0 | 0:2.17-79.ael7b_1.4 |
| Red Hat:rhel_mission_critical:6.2::server | glibc | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-common | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-debuginfo | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-debuginfo-common | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-devel | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-headers | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-static | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | glibc-utils | 0 | 0:2.12-1.47.el6_2.17 |
| Red Hat:rhel_mission_critical:6.2::server | nscd | 0 | 0:2.12-1.47.el6_2.17 |
| SUSE:Linux Enterprise Desktop 11 SP3 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Desktop 11 SP4 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Desktop 12 | glibc | 0 | 2.19-22.13.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | glibc | 0 | 2.19-35.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | glibc | 0 | 2.11.3-17.45.66.1 |
| SUSE:Linux Enterprise Server 11 SP3 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Server 11 SP4 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Server 12 | certification-sles-eal4 | 0 | 12.0-0.16.1 |
| SUSE:Linux Enterprise Server 12 | glibc | 0 | 2.19-22.13.1 |
| SUSE:Linux Enterprise Server 12 SP1 | glibc | 0 | 2.19-35.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP3 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | certification-sles-eal4 | 0 | 12.0-0.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | glibc | 0 | 2.19-22.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | glibc | 0 | 2.19-35.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP3 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | glibc | 0 | 2.11.3-17.95.2 |
| SUSE:Linux Enterprise Software Development Kit 12 | glibc | 0 | 2.19-22.13.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | glibc | 0 | 2.19-35.1 |
| Ubuntu:14.04:LTS | eglibc | 0 | 2.19-0ubuntu6.7 |
| openSUSE:Tumbleweed | glibc | 0 | 2.24-2.3 |
Related vulnerabilities
- CVE-2021-3326 The iconv function in the GNU C Library (aka glibc or libc6) 2.32 and earlier, when… Also affects glibc
- CVE-2009-5155 In the GNU C Library (aka glibc or libc6) before 2.28, parse_reg_exp in posix/regcomp.c… Also affects glibc
- CVE-2017-12133 Use-after-free vulnerability in the clntudp_call function in sunrpc/clnt_udp.c in the GNU… Also affects glibc
- CVE-2015-5180 res_query in libresolv in glibc before 2.25 allows remote attackers to cause a denial of… Also affects glibc
- CVE-2017-1000366 glibc contains a vulnerability that allows specially crafted LD_LIBRARY_PATH values to… Also affects glibc
- CVE-2014-9984 nscd in the GNU C Library (aka glibc or libc6) before version 2.20 does not correctly… Also affects glibc
- CVE-2016-10228 The iconv program in the GNU C Library (aka glibc or libc6) 2.31 and earlier, when… Also affects glibc
- CVE-2016-4429 Stack-based buffer overflow in the clntudp_call function in sunrpc/clnt_udp.c in the GNU… Also affects glibc