CVE-2024-33602
High · 7.4CVSS
7.4
EPSS
0.4%
Published
May 6, 2024
CISA due date
—
Cloudanix analysis
A bug in a system service that caches name information can let someone already on the machine corrupt memory and potentially gain more control.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Full Compromise
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The nscd netgroup cache can corrupt memory when the NSS callback does not store all strings in the provided buffer, introduced in glibc 2.15 and present only in the nscd binary.
Why it matters to the business
Systems using nscd for netgroup caching face risk of local memory corruption that may lead to service crashes or code execution, potentially allowing compromise of affected hosts without remote access.
How an attack unfolds
A local attacker configures an NSS module or environment that triggers netgroup cache lookups in nscd, supplying a callback returning strings outside the expected buffer to induce memory corruption and achieve code execution.
How to fix it
Upgrade glibc to a build containing commit 3d1aed874918c466a4477af1da35983ab036690e. Disable or remove the nscd binary if netgroup caching is unnecessary.
How to confirm the fix worked
Confirm glibc packages contain the referenced commit or later, restart nscd, and validate netgroup caching behavior under controlled NSS callback tests for absence of corruption.
Typical attack path
- Obtain local access on a target system running nscd
- Set up or modify an NSS configuration to affect netgroup lookups
- Trigger netgroup cache operations within nscd
- Leverage resulting memory corruption for arbitrary code execution or denial of service
How to detect it
Inspect nscd process logs and system crash reports for memory corruption signals tied to netgroup cache operations; review NSS configuration changes on hosts running nscd.
What your security team should do
- Apply the glibc update containing commit 3d1aed874918c466a4477af1da35983ab036690e across all affected systems
- Review and minimize use of nscd where netgroup functionality is not required
- Include nscd memory error monitoring in routine host integrity checks
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | compat-libpthread-nonshared | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-all-langpacks | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-benchtests | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-common | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-devel | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-doc | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-gconv-extra | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-headers | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-aa | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-af | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-agr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ak | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-am | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-an | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-anp | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ar | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-as | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ast | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ayc | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-az | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-be | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bem | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ber | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bg | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bhb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bho | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bo | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-br | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-brx | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-bs | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-byn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ca | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ce | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-chr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-cmn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-crh | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-cs | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-csb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-cv | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-cy | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-da | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-de | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-doi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-dsb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-dv | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-dz | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-el | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-en | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-eo | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-es | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-et | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-eu | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fa | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ff | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fil | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fo | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fur | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-fy | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ga | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-gd | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-gez | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-gl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-gu | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-gv | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ha | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hak | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-he | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hif | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hne | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hsb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ht | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hu | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-hy | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ia | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-id | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ig | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ik | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-is | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-it | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-iu | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ja | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ka | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kab | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kk | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-km | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ko | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kok | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ks | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ku | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-kw | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ky | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lg | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-li | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lij | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ln | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lo | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lt | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lv | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-lzh | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mag | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mai | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mfe | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mg | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mhr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-miq | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mjw | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mk | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ml | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mni | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ms | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-mt | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-my | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nan | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nb | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nds | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ne | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nhn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-niu | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-nso | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-oc | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-om | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-or | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-os | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-pa | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-pap | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-pl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ps | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-pt | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-quz | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-raj | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ro | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ru | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-rw | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sa | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sah | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sat | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sc | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sd | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-se | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sgs | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-shn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-shs | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-si | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sid | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sk | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sm | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-so | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sq | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ss | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-st | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sv | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-sw | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-szl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ta | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tcy | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-te | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tg | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-th | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-the | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ti | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tig | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tk | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tl | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tn | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-to | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tpi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tr | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ts | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-tt | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ug | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-uk | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-unm | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ur | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-uz | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-ve | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-vi | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-wa | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-wae | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-wal | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-wo | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-xh | 0 | 2.28-251.el8_10.2 |
| AlmaLinux:8 | glibc-langpack-yi | 0 | 2.28-251.el8_10.2 |
Related vulnerabilities
- CVE-2025-0395 When the assert() function in the GNU C Library versions 2.13 to 2.40 fails, it does not… Also affects compat-libpthread-nonshared
- CVE-2024-33599 nscd: Stack-based buffer overflow in netgroup cache If the Name Service Cache Daemon's… Also affects compat-libpthread-nonshared
- CVE-2024-33600 nscd: Null pointer crashes after notfound response If the Name Service Cache Daemon's… Also affects compat-libpthread-nonshared
- CVE-2024-33601 nscd: netgroup cache may terminate daemon on memory allocation failure The Name Service… Also affects compat-libpthread-nonshared
- CVE-2024-2961 The iconv() function in the GNU C Library versions 2.39 and older may overflow the output… Also affects compat-libpthread-nonshared
- CVE-2023-4911 A buffer overflow was discovered in the GNU C Library's dynamic loader ld.so while… Also affects compat-libpthread-nonshared
- CVE-2023-4806 A flaw has been identified in glibc. Also affects compat-libpthread-nonshared
- CVE-2023-4527 A flaw was found in glibc. Also affects compat-libpthread-nonshared