Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessJoin victim's Layer-2 segment
-
DeliveryObserve authorized client's MAC
-
ExploitSend forged gratuitous ARP replies binding attacker IP to victim MAC
-
ExecutionBackground sync adds attacker IP to victim session
-
ImpactInherit authorized portal access attributed to victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) OPNsense captive portal configured with the roaming feature enabled (roaming = 1 on the zone); (2) network position on the same Layer-2 broadcast segment as the portal clients, so forged gratuitous ARP/hostwatch observations are accepted; and (3) an existing authorized victim session whose MAC the attacker can claim. Exploitation is limited by these factors: it is NOT remotely exploitable across routed boundaries (Layer-2 adjacency only), it provides no benefit if roaming is disabled, and the demonstrated outcome is inheritance of an existing authorized session rather than minting a session from nothing. No user interaction or authentication is needed once these conditions hold. IPv6/NDP exploitation was not separately tested by the vendor. |
| Impact | This is a moderate, conditionally-exploitable issue rather than a top-tier emergency. The CVSS 4.0 vector (AV:A/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N, score 5.3) is internally consistent with the mechanism: exploitation requires Layer-2 adjacency (AV:A), is low-complexity, needs no authentication (PR:N) and no user interaction, and yields only low confidentiality and low integrity impact (unauthorized portal access and traffic/quota misattribution - not code execution or data compromise). No KEV listing is present, so this is NOT confirmed actively exploited. No EPSS score was supplied, so statistical exploitation likelihood cannot be quantified from the input. A public research write-up (abraxaslabs.tech) and a VulnCheck advisory are referenced, but the input does not mark a confirmed working PoC; a public PoC reference exists, but it is not verified as working exploit code. No SSVC exploitation/automatable/technical-impact decomposition was provided - only the vuln.today 'this_month' priority label, which aligns with a patch-this-cycle posture rather than act_now/emergency. The practical risk ceiling is bounded by two hard limits: the attacker must be on the same broadcast domain, and the captive portal 'roaming' feature must be enabled. Net: a credible insider/guest-network threat worth patching on a normal cycle, not a remotely-exploitable internet-facing critical. |
| Exploit ScenarioDerived | On a guest or hotspot network where OPNsense captive portal roaming is enabled, an unauthenticated attacker sharing the same Layer-2 segment sends forged gratuitous ARP replies that bind the attacker's own IP to the MAC address of an already-authorized client. At the next captive portal background synchronization, OPNsense copies the attacker's IP into the victim's session and PF authorization table, granting the attacker portal access with network usage and quotas attributed to the victim. A public research write-up describes this technique; the input does not confirm packaged working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Captive portal session takeover in OPNsense core allows an unauthenticated attacker sharing a Layer-2 segment with portal clients to inherit an already authorized victim session by forging gratuitous ARP replies that claim the attacker's own IP address belongs to the victim's MAC. The flaw only matters where captive portal roaming is enabled on the zone and a legitimate authorized session already exists; the demonstrated outcome is unauthorized reuse of that existing session, with traffic and quota attributed to the victim, rather than creation of a session from nothing. Severity is moderate (CVSS 5.3; assessed CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N), there is no CISA KEV listing, but a public vendor advisory and an independent technical write-up with reproduction steps are available, and fixes are published in OPNsense 26.7.3 and 26.4.2p1.
RemediationAI
Vendor-released patch: upgrade OPNsense core to 26.7.3 (or 26.4.2p1 on the 26.4 branch), which contains commits f46836d0c3d14e26d79214009bfbfa9a1eecab55 and 32dc2a3e52eefef5251077f315a0f3243eedb834; details are in advisory https://github.com/opnsense/core/security/advisories/GHSA-864r-q4j5-5mjq. If upgrading immediately is not possible, disable roaming on every captive portal zone (roaming = 0), which removes the attack path entirely because additional observed addresses are no longer merged into authorized sessions - the trade-off is that legitimate clients whose traffic arrives from more than one address lose the automatic session extension and may be forced to re-authenticate. The upstream fix additionally caps roaming expansion to a single IPv4 address plus IPv6 addresses, so environments that still need multi-address roaming should prioritize patching over relying on the configuration workaround. Because exploitation is confined to hosts on the same Layer-2 broadcast segment as portal clients, reducing that adjacency for untrusted devices limits exposure, but the vendor patch is the complete fix.
Affected VersionsENISA
Affected Packages
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
OPNsense's captive portal backend (src/opnsense/scripts/captiveportal/cp-background-process.py) periodically reconciles each session's authorized address set by calling arp.get_all_addresses_by_mac() for the session's MAC and, when roaming is enabled, merging every newly observed address into the session via update_roaming_ips() before pushing the expanded set into the PF/IPFW authorization tables with _add_client(). Those MAC-to-IP observations come from the hostwatch-backed list_hosts.py channel (packet-level ARP/NDP observation) rather than the kernel ARP table, and they are completely unauthenticated - any adjacent host can assert that an arbitrary IP is at a given MAC. The result is a CWE-290 authentication-bypass-by-spoofing problem (the advisory additionally classifies it under CWE-345 insufficient verification of data authenticity and CWE-863 incorrect authorization): discovery data is treated as authorization evidence, so an IP inherits an authorized portal session without ownership ever being verified. The upstream commit f46836d0c3d14e26d79214009bfbfa9a1eecab55 introduces a _filter_addresses() helper that, when roaming is enabled, retains only the first observed IPv4 address plus any IPv6 addresses, collapsing the multi-IPv4 expansion path that the attack abuses. Testing by the researcher used forged IPv4 gratuitous ARP and an anonymous authorized victim session; IPv6 NDP exploitation was not separately tested, so the IPv6 dimension of the flaw is unverified.
Know when Opnsense 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:A/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Layer-2-adjacent (AV:A) forged-ARP trigger needs no auth or interaction (PR:N/UI:N/AC:L); impact is limited to unauthorized portal access and quota misattribution, so C:L/I:L/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OPNsense core 26.1.6 through 26.7.7 contains an authentication bypass vulnerability in the captive portal roaming feature that lets unauthenticated attackers hijack authorized client sessions by spoofing unauthenticated MAC-to-IP observations. Attackers on the same Layer-2 segment can send forged gratuitous ARP replies binding their IP to a victim's MAC, gaining portal access with traffic attributed to the victim.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Insecure permissions in the configuration directory (/conf/) of OPNsense Community Edition before 23.7 and Business Edit
DECISO OPNsense 23.1 does not impose rate limits for authentication, allowing attackers to perform a brute-force attack
A command injection vulnerability in the component /api/cron/settings/setJob/ of OPNsense Community Edition before 23.7
A command injection vulnerability in the component diag_backup.php of OPNsense Community Edition before 23.7 and Busines
/ui/cron/item/open in the Cron component of OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 al
OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 was discovered to contain insecure permissions
Insecure permissions exist for configd.socket in OPNsense Community Edition before 23.7 and Business Edition before 23.4
A directory traversal vulnerability in the Captive Portal templates of OPNsense Community Edition before 23.7 and Busine
A Cross-Site Request Forgery (CSRF) in the System Halt API (/system/halt) of OPNsense Community Edition before 23.7 and
OPNsense 19.1 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject malicio
OPNsense 19.1 contains a stored cross-site scripting vulnerability in the system_advanced_sysctl.php endpoint that allow
OPNsense 19.1 contains a reflected cross-site scripting vulnerability that allows unauthenticated attackers to inject ma
EUVD-2026-113805
GHSA-48x9-g485-9vgw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB