Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain unprivileged local account in any zone
-
DeliveryOpen file descriptor and craft door_call payload
-
ExploitLoop door_call() passing FD to zone's nscd door
-
Executionnscd FD table grows unbounded in kernel memory
-
Impactnscd hangs, stalling processes across all zones
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup on lifecycle end
|
| Exploitation Conditions | Requires a local, authenticated but unprivileged account on an illumos/OmniOS host (PR:L), including merely an account inside a non-global zone, since the main nscd door at /var/run/name_service_door accepts passed descriptors from any user in its zone. The specific trigger is repeatedly invoking door_call() against that door while passing a file descriptor the request does not use, exploiting that switcher() in nscd_frontend.c fails to close such descriptors and that nscd runs with an unlimited file-descriptor limit. Limiting factors: no remote vector (local access mandatory), no exploitation of default network services, impact is denial-of-service only with no data exposure, and the system must be running an illumos distribution built before illumos-gate commit af810a72; patched builds cap passed descriptors to one (DOOR_PARAM_DESC_MAX=1) and close unused descriptors, closing the vector. |
| Impact | All signals converge on this being a genuine but bounded local availability threat rather than a mass-exploitation priority. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) confirms a local attacker needs only a low-privileged account and faces low attack complexity with no user interaction, and the impact is purely availability (VC:N/VI:N/VA:H with subsequent-system SA:H), consistent with the CWE-772 resource-exhaustion description - there is no confidentiality or integrity exposure. The notable risk amplifier is scope: because nscd runs with an unlimited file-descriptor limit and its door accepts descriptors from any user in the zone, an unprivileged user in a single non-global zone can hang nscd for processes across all zones on the host (hence SA:H). CVSS exploit maturity is E:P (proof-of-concept), the vulnerability is NOT in CISA KEV, and no EPSS score was provided; there is no evidence of active or widespread exploitation. The CVSS vector and the textual description agree (both indicate local, low-privilege, availability-only), so no signal conflict exists. Net: a legitimate patch-worthy DoS in multi-tenant/zone environments, but low urgency relative to network-exploitable or RCE issues, and constrained to platforms with an attacker-controlled local account. |
| Exploit ScenarioDerived | An unprivileged user with shell access in a non-global zone writes a small program that opens a file descriptor and repeatedly issues door_call() to /var/run/name_service_door, passing the descriptor each time. Because switcher() never closes descriptors the request does not consume and nscd has no fd limit, nscd's file-descriptor table grows unbounded in kernel memory until nscd becomes unresponsive, degrading name-service lookups for processes in every zone on the host. CVSS reports proof-of-concept exploit maturity (E:P); no weaponized or in-the-wild exploit is confirmed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Kernel memory exhaustion in the illumos name service cache daemon (nscd) lets any local, unprivileged user - including one confined to a non-global zone - drive the daemon's file descriptor table to grow without bound. The nscd door at /var/run/name_service_door accepts passed file descriptors from any user in its zone, and switcher() in nscd_frontend.c never releases descriptors that a request does not consume, so a loop of door_call() invocations against the daemon slowly starves kernel memory and can render processes in every zone on the host unresponsive. Impact is availability-only with no confidentiality or integrity loss, and it is confirmed to affect illumos-gate and OmniOS builds predating illumos-gate commit af810a72, which caps in-flight descriptors and closes unused ones; no CISA KEV listing or public exploit code is documented in the supplied references, and the defect has been latent in the illumos codebase since a 2006 commit (cb5caa98).
RemediationAI
Upstream fix available (commit af810a72c09944e884ec695e8dbf1702a4f424ae); a released patched version number is not specified in the available data, so operators of OmniOS and other illumos distributions must update to a build that incorporates that illumos-gate revision (or later) and restart nscd - the change closes unused door-passed descriptors, funnels all switcher() return paths through a cleanup path, and caps DOOR_PARAM_DESC_MAX to one descriptor per call. Until a patched build can be deployed, the most direct compensating control is to bound the damage rather than eliminate the trigger: lower nscd's file-descriptor limit (for example via its SMF service configuration or a project rlimit) so its descriptor table cannot grow unchecked - the trade-off is that nscd will begin failing or logging descriptor-exhaustion errors under legitimate load and name-service lookups may fall back to direct LDAP/NIS/file access. Restricting the mode on /var/run/name_service_door so that only privileged users hold write permission prevents unprivileged door_call() submission, but this breaks hostname and identity resolution for ordinary local users, which is generally unacceptable on a multi-user system. Inside a non-global zone, a zone administrator can disable the zone's nscd instance (svcadm disable nscd) to stop that zone from contributing to host-wide exhaustion, accepting slower or differently-cached lookups; the global-zone nscd still requires the code fix. Monitoring nscd's open-descriptor counter and watching for growth driven by repeated door calls also gives an early detection signal while patches are staged, since only a local account or a compromised non-global zone is needed to sustain the loop. Vendor references: https://illumos.org/issues/18494 and https://github.com/illumos/illumos-gate/commit/af810a72c09944e884ec695e8dbf1702a4f424ae.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
illumos doors are a fast local RPC mechanism in which a client passes a buffer plus an optional array of door_desc_t structures to a server thread; each descriptor entry carries a d_attributes bitmap, whose DOOR_DESCRIPTOR bit signals that a file descriptor travels with the call. nscd exposes its service through a door installed at /var/run/name_service_door (one per zone) and its front end dispatcher switcher() in usr/src/cmd/nscd/nscd_frontend.c only closes the descriptors a given procedure actually consumes - for every other request path it simply door_return()s without touching the passed descriptors. Because nscd is started with an unlimited file-descriptor limit, each leaked descriptor is retained in the daemon's kernel-resident descriptor table, so a repeated door_call() by any user permitted to write to that door grows nscd's table without bound. The root cause class is CWE-772 (Missing Release of Resource after Effective Lifetime) - a descriptor leak rather than a memory-safety bug. The fix in illumos-gate commit af810a72 introduces a helper nscd_close_dp() that clears DOOR_DESCRIPTOR and closes the descriptor idempotently, restructures switcher() so every return path funnels through a bail label that conditionally frees the descriptor, makes _nscd_proc_iamhere() return a boolean indicating whether the caller kept the descriptor, rejects self-cred requests that arrive without a door descriptor, and hardens the server with door_setparam(fd, DOOR_PARAM_DESC_MAX, 1) so only a single descriptor may be attached per call. The independent assessment rates this CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H, i.e. a scope-changing, availability-only denial of service requiring local unprivileged access; the vendor-supplied CVSS v4.0 vector is 6.8 with exploit-maturity metric P, reflecting proof-of-concept-level code rather than confirmed in-the-wild exploitation.
Know when Illumos 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
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:P
Local low-privileged account with low complexity and no UI; scope is Changed because a single zone's user hangs nscd for all zones host-wide; availability-only impact so C:N/I:N/A:H.
Primary rating from Vendor (illumos).
CVSS VectorVendor: illumos
DescriptionCVE.org
A missing release of resources in the illumos name service cache daemon (nscd) allows a local user to exhaust kernel memory. The nscd door server procedure, switcher() in usr/src/cmd/nscd/nscd_frontend.c, does not close file descriptors that are passed with a door call but not used by the request, and the main nscd door at /var/run/name_service_door accepts passed descriptors from any user in its zone. Because nscd also runs with an unlimited file descriptor limit, an unprivileged local user, including one in a non-global zone, can repeatedly pass a descriptor to its zone's nscd in a door_call() loop, causing the file descriptor table of nscd to grow without bound in kernel memory. This causes a denial of service of nscd and can render processes in all zones on the host unresponsive. The flaw has existed since 2006 (illumos-gate commit cb5caa98), and affects any illumos distribution prior to illumos-gate commit af810a72.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
The x86-64 kernel system-call functionality in Xen 4.1.2 and earlier, as used in Citrix XenServer 6.0.2 and earlier and
illumos smbsrv NULL pointer dereference allows system crash. Rated high severity (CVSS 7.5), this vulnerability is remot
An issue was discovered in illumos before 2020-10-22, as used in OmniOS before r151030by, r151032ay, and r151034y and Sm
Remote kernel heap corruption in the illumos SCTP stack lets an unauthenticated attacker send a crafted INIT ACK packet
illumos osnet-incorporation bcopy() and bzero() implementations make signed instead of unsigned comparisons allowing a s
illumos illumos-gate before 676abcb has a stack buffer overflow in /dev/net, leading to privilege escalation via a stat
Host denial-of-service in illumos bhyve allows a privileged guest user to panic the host by executing a REP-prefixed MOV
Kernel heap corruption in the illumos data-link pseudo-driver (dld) allows an unprivileged local user - including one co
Local denial of service in the illumos reparsed daemon (reparsed) lets a low-privileged authenticated local user crash t
NULL pointer dereference in the illumos Network Auto-Magic daemon (nwamd) allows any local user to crash the daemon - an
The devzvol_readdir function in illumos does not check the return value of a strchr call, which allows remote attackers
Local users holding an unprivileged account in any zone on an illumos-based host can send an unauthorized ZSD_CMD_NEW_ZO
EUVD-2026-95801
GHSA-77hg-3j5h-xvf6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB