Skip to main content

illumos dld CVE-2026-15449

| EUVDEUVD-2026-45034 MEDIUM
Time-of-check Time-of-use (TOCTOU) Race Condition (CWE-367)
2026-07-16 illumos GHSA-5jqp-7hrf-w792
5.8
CVSS 4.0 · Vendor: illumos
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain low-privilege local account
  2. Delivery
    Open /dev/dld, obtain datalink ioctl access
  3. Exploit
    Spawn concurrent thread to race pr_valsize modification
  4. Execution
    Win TOCTOU between kernel's two copyin calls
  5. Persist
    Overflow undersized kernel heap buffer
  6. Impact
    Corrupt kernel heap, trigger panic or escalate privileges

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
Exploitation Conditions

Exploitation requires a local account on an illumos-based system with sufficient privilege to open /dev/dld and issue DLDIOC_GETMACPROP or DLDIOC_SETMACPROP ioctls; this access is available to an unprivileged local user including one confined to a non-global zone provided that zone has been granted datalink ownership by the administrator (a common configuration in SmartOS and Triton multi-tenant deployments). A multi-threaded process is required to mount the race: one thread issues the ioctl while a sibling thread concurrently overwrites pr_valsize in the shared user-space ioctl buffer between the kernel's two copyin calls. The AT:P metric in the CVSS 4.0 vector reflects this required timing coincidence. Exploitation is strictly limited to local access (AV:L); remote unauthenticated exploitation is not possible. Systems where no non-global zones hold datalink ownership, or where all local users are fully trusted operators, face no practical exposure to this vulnerability.

Impact

The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:H) and score of 5.8 accurately represent the real-world risk profile. AV:L confines exploitation to local access, which meaningfully limits blast radius compared to network-exploitable kernel bugs. AT:P reflects the race-condition timing requirement - the attacker must win the window between two kernel copyin calls, which is non-trivial but reliably achievable on multi-core hardware with repeated attempts. PR:L confirms that no elevated privileges are needed, which is especially significant in multi-tenant environments such as SmartOS or Triton Data Center where zone administrators are routinely granted datalink ownership as an operational necessity; the vulnerability undermines the zone isolation boundary in that deployment model. The confirmed impacts are kernel heap corruption (VI:H) and system panic (VA:H); the description also notes the corruption 'may be usable for further compromise,' implying potential privilege escalation, though this is assessed as possible rather than confirmed. EPSS data is not available in the provided intelligence. The CVE is not in CISA KEV, and no public POC has been identified, which reduces immediate real-world exploitation probability. For operators of SmartOS or OmniOS in multi-tenant or cloud environments, the practical risk is elevated above what the numeric score suggests because the attack requires only zone-level access rather than full host access.

Exploit ScenarioDerived

A low-privileged user or zone administrator on a SmartOS compute node opens /dev/dld and prepares a DLDIOC_SETMACPROP ioctl buffer in shared user-space memory, then spawns a concurrent thread that continuously writes an inflated value to pr_valsize while the main thread submits the ioctl repeatedly. When the race is won - pr_valsize is enlarged after the kernel allocates the heap buffer but before the second ddi_copyin() reads the full structure - the kernel writes more data than the buffer can hold, corrupting adjacent heap objects. On modern multi-core illumos hosts, the race window is realistically achievable through rapid repeated attempts. No public POC has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 16, 2026

Kernel heap corruption in the illumos data-link pseudo-driver (dld) allows an unprivileged local user - including one confined to a non-global zone that owns a datalink - to panic the system or potentially escalate privileges. The flaw in drv_ioc_prop_common() exploits a classic double-copyin TOCTOU race on the DLDIOC_GETMACPROP and DLDIOC_SETMACPROP ioctls: the kernel sizes its heap allocation from pr_valsize on the first copyin but re-reads the entire ioctl struct from the same user address a second time, allowing a concurrent thread to enlarge pr_valsize between the two reads and overflow the under-sized buffer. No public exploit code has been identified and the CVE is not listed in CISA KEV, but the upstream fix is confirmed by an illumos-gate commit.

RemediationAI

The primary fix is available as illumos-gate commit 6959feb5b430411a4809b06c53dcdb42fb525eac (https://github.com/illumos/illumos-gate/commit/6959feb5b430411a4809b06c53dcdb42fb525eac); this is an upstream source commit rather than a tagged release, so the exact patched release version is not independently confirmed for illumos-gate, OmniOS, or SmartOS - administrators should monitor https://illumos.org/issues/18020 and their respective vendor release channels for downstream packages incorporating this change. As a compensating control where patching is not immediately feasible, restricting which zones receive datalink ownership via dlmgmtd and zone brand configuration eliminates the attack path for those zones: a non-global zone without datalink ownership cannot reach the DLDIOC_GETMACPROP or DLDIOC_SETMACPROP ioctl paths. The trade-off is that legitimate networking functionality requiring MAC-layer property access will be unavailable in those zones. There is no network-facing workaround because the attack vector is strictly local; network-layer firewall rules provide no mitigation.

Affected VersionsENISA

OmniOS r151054 <r151054bj
OmniOS any <r151054
OmniOS r151058 <r151058j
illumos-gate eae72b5b807baa9116e64502cbb278edf15f3146 <6959feb5b430411a4809b06c53dcdb42fb525eac
OmniOS r151056 <r151056aj
SmartOS any <202060709

Affected Packages

euvd smartos_any fix: 202060709

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerable function is drv_ioc_prop_common() in usr/src/uts/common/io/dld/dld_drv.c, which services DLDIOC_GETMACPROP and DLDIOC_SETMACPROP ioctls on /dev/dld, the illumos kernel data-link management device. The dld_ioc_macprop_t structure contains a fixed header (including the pr_valsize field) followed by a variable-length pr_val payload. CWE-367 (TOCTOU Race Condition) is the root cause: the driver calls ddi_copyin() once for sizeof(dld_ioc_macprop_t) to read pr_valsize, computes dsize = sizeof(dld_ioc_macprop_t) + pr_valsize - 1, allocates a kernel heap buffer of that size, then calls ddi_copyin() a second time for the full dsize bytes from the same user-space address. Because user memory can be modified between any two kernel reads, a racing write to pr_valsize after the allocation but before the second copyin causes the kernel to copy more bytes than were allocated. The fix (commit 6959feb5b430411a4809b06c53dcdb42fb525eac) eliminates the race by assigning the already-trusted in-kernel header copy (*kprop = *prop) and performing the second copyin only over the pr_val payload at the correct offset, so pr_valsize is never re-read from user space. A new DLD_MACPROP_BUFSIZE macro also corrects a size calculation error related to flexible-array-member padding. Affected CPEs are cpe:2.3:a:illumos:illumos-gate:*:*:*:*:*:*:*:*, cpe:2.3:a:omnios:omnios:*:*:*:*:*:*:*:*, and cpe:2.3:a:triton_data_center:smartos:*:*:*:*:*:*:*:*.

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

Vendor (illumos) PRIMARY 5.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Race condition requires winning a kernel TOCTOU timing window (AC:H); low-privilege local account suffices (PR:L); kernel heap corruption enables scope change beyond the user process boundary (S:C).

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:N/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (illumos).

CVSS VectorVendor: illumos

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A time-of-check to time-of-use (TOCTOU) flaw in the illumos data-link pseudo-driver (dld) affects handling of the DLDIOC_GETMACPROP and DLDIOC_SETMACPROP ioctls on /dev/dld. drv_ioc_prop_common() in usr/src/uts/common/io/dld/dld_drv.c copies the dld_ioc_macprop_t ioctl header in once to read its pr_valsize field, sizes and allocates a kernel heap buffer from that value, and then copies the full request in a second time from the same unprivileged user address. A concurrent thread can enlarge pr_valsize between the two copyins, so the second copyin and the subsequent property handling write beyond the end of the undersized allocation and corrupt the kernel heap. An unprivileged local user, including one confined to a non-global zone that owns a datalink, can trigger this to panic the system. The resulting kernel heap corruption may be usable for further compromise.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
niche illumos-derived Unix, limited to specialized cloud or legacy deployments
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

29
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +29
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2012-0217 HIGH POC
7.2 Jun 12

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

CVE-2016-6561 HIGH POC
7.5 Mar 31

illumos smbsrv NULL pointer dereference allows system crash. Rated high severity (CVSS 7.5), this vulnerability is remot

CVE-2020-27678 CRITICAL
9.8 Oct 26

An issue was discovered in illumos before 2020-10-22, as used in OmniOS before r151030by, r151032ay, and r151034y and Sm

CVE-2026-15422 CRITICAL
9.1 Jul 16

Remote kernel heap corruption in the illumos SCTP stack lets an unauthenticated attacker send a crafted INIT ACK packet

CVE-2016-6560 HIGH
8.6 Mar 31

illumos osnet-incorporation bcopy() and bzero() implementations make signed instead of unsigned comparisons allowing a s

CVE-2023-31284 HIGH
7.8 May 04

illumos illumos-gate before 676abcb has a stack buffer overflow in /dev/net, leading to privilege escalation via a stat

CVE-2026-104112 MEDIUM
6.8 Oct 09

Kernel memory exhaustion in the illumos name service cache daemon (nscd) lets any local, unprivileged user - including o

CVE-2026-102916 MEDIUM
6.8 Oct 09

Host denial-of-service in illumos bhyve allows a privileged guest user to panic the host by executing a REP-prefixed MOV

CVE-2026-104115 MEDIUM
5.4 Oct 09

Local denial of service in the illumos reparsed daemon (reparsed) lets a low-privileged authenticated local user crash t

CVE-2026-104114 MEDIUM
5.4 Oct 09

NULL pointer dereference in the illumos Network Auto-Magic daemon (nwamd) allows any local user to crash the daemon - an

CVE-2014-9491 MEDIUM
5.0 Jan 20

The devzvol_readdir function in illumos does not check the return value of a strchr call, which allows remote attackers

CVE-2026-104116 LOW
1.9 Oct 09

Local users holding an unprivileged account in any zone on an illumos-based host can send an unauthorized ZSD_CMD_NEW_ZO

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy