Skip to main content

OPNsense EUVDEUVD-2026-102112

| CVE-2026-53582 HIGH
XML Injection (aka Blind XPath Injection) (CWE-91)
2026-10-15 GitHub_M
7.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as CA/Certificate Manager
  2. Delivery
    Submit crafted refid with XPath payload
  3. Exploit
    Retrieve object to read refcount oracle
  4. Execution
    Recover config.xml secrets character by character
  5. Impact
    Escalate using exposed hashes and keys

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization XPath query parameterization
Exploitation Conditions

Requires an authenticated OPNsense web-interface account holding CA Manager or Certificate Manager privileges (PR:L) - this is not a default anonymous attack surface. The attacker must submit a crafted refid in the Trust module's CA or Certificate objects, where the value is interpolated unescaped into an XPath expression (//*[text() = '{refid}']) in CAsField.php / CertificatesField.php, then repeatedly retrieve the object to read the boolean refcount/in_use result as an oracle. Exploitation is LIMITED by the need for those trust-management privileges and by its iterative, high-complexity nature (one boolean leak per request, so secrets are recovered character by character over many requests). Affected: all versions prior to 26.1.10; fixed in 26.1.10, which enforces a 13-hex-character format mask on refid before the XPath query.

Impact

This is a genuine but second-tier priority - a post-authentication information-disclosure flaw rather than a drive-by remote compromise. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L, base 7.1 High) correctly captures the shape: network-reachable via the web management interface, but gated behind PR:L (the attacker must already hold CA Manager or Certificate Manager privileges) and rated AC:H because exploitation is a blind, character-by-character refcount oracle requiring many iterative requests rather than a single deterministic payload. The scope change (S:C) is the key severity driver - a low-privileged trust-module operator can recover secrets belonging to entirely different security domains (password hashes, API credentials, private keys, VPN and HA material), enabling privilege escalation. No EPSS score, no KEV listing, and no public POC were provided; the only exploitation evidence is the vendor's own fix commits. Signals are consistent (no conflicts): all point to a credentialed insider/compromised-account threat model, not mass internet exploitation. Missing data: EPSS probability is absent, so real-world exploitation likelihood cannot be quantified. Note one minor divergence - the published vector asserts A:L, but the described impact is purely confidentiality/disclosure with no clear availability degradation; verify the A:L justification with the vendor.

Exploit ScenarioDerived

An attacker who has obtained a low-privileged OPNsense account scoped to CA Manager or Certificate Manager (via phishing, credential reuse, or a rogue delegated admin) submits crafted certificate/CA refid values and repeatedly re-reads the object, using the returned boolean 'in use' refcount as an oracle to reconstruct arbitrary config.xml values one character at a time. Over many requests they extract root/admin password hashes, API keys, and VPN private keys, then pivot to full firewall compromise. No public exploit code was identified at time of analysis, though the fix commits reveal the exact vulnerable XPath sinks.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Authenticated XPath injection in the OPNsense firewall and routing platform (all versions prior to 26.1.10) lets a user holding CA Manager or Certificate Manager privileges recover values stored in config.xml character by character. The Trust module stores attacker-controlled certificate and CA refid values and interpolates them unescaped into XPath queries in CAsField.php and CertificatesField.php; because the resulting refcount/in_use boolean is returned to the requester, it acts as a blind injection oracle for secrets such as password hashes, API credentials, certificate private keys, VPN key material, and high-availability credentials, which in turn can enable privilege escalation and compromise of other security domains. Exploitation is post-authentication, requires those specific trust-management privileges, and is high-complexity and iterative (roughly one boolean leak per request), so this is a genuine but second-tier information-disclosure issue rather than a drive-by remote compromise; no public exploit code has been identified at time of analysis. Vendor-released patch: 26.1.10.

RemediationAI

Upgrade to OPNsense 26.1.10, which is the vendor-released fix; per the advisory (https://github.com/opnsense/core/security/advisories/GHSA-xww7-76m6-mh2r) this release enforces a 13-character hexadecimal format mask on refid before any XPath evaluation. Specifically, the patch adds a Mask of /^[0-9a-f]{13}$/ to Ca.xml and Cert.xml and preg_match guards around the XPath lookups in CAsField.php and CertificatesField.php (commits e2cd067343511252fb0d391a17d82d3ecceece45 and fc2f0d745c17855d2027b192fd4e3fa913e26859), so after upgrading no configuration change beyond the package update is required. If immediate upgrading is not possible, the primary compensating control is privilege reduction: audit accounts and groups holding CA Manager or Certificate Manager rights and remove those privileges from anyone who does not strictly need them, since the injection is only reachable by users with those roles - the trade-off is that legitimate certificate lifecycle management must then be centralized in one or two trusted admin accounts. Because the vulnerable interpolation is compiled into the PHP model code, there is no configuration-only workaround; restricting access to the web GUI (for example limiting administrative interfaces to a management VLAN or trusted source addresses) reduces the attack surface but does not remove the flaw for privileged users. Organizations should also treat the affected config.xml contents as potentially exposed and consider rotating credentials that are reachable through the oracle, including local user password hashes, API keys, certificate private keys, VPN key material, and high-availability credentials, with the caveat that rotating multiple secrets entails coordinated service restarts and possible tunnel or cluster downtime.

Affected VersionsENISA

core < 26.1.10

Affected Packages

euvd core fix: 26.1.10

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 flaw is a classic blind XPath injection (CWE-91 / XML Injection) in the PHP-based OPNsense Core Trust module, tracked under CPE cpe:2.3:a:opnsense:core:*:*:*:*:*:*:*:*. OPNsense models its configuration as a single XML document (config.xml) accessed via XPath, and the Trust module's MVC field types build queries of the form //*[text() = '{$refid}'] using a refid value supplied when a CA or certificate object is created. In CAsField.php (actionPostLoadingEvent) the raw refid was concatenated directly into the XPath, and in CertificatesField.php the same unvalidated value was used to walk the document tree and set the in_use flag. Since a crafted refid can alter the XPath predicate, the boolean refcount/in_use result becomes an oracle: an attacker submits a payload and repeatedly retrieves the object to observe true/false, leaking document contents one character at a time. The upstream fix (commits e2cd067343511252fb0d391a17d82d3ecceece45 and fc2f0d745c17855d2027b192fd4e3fa913e26859) constrains refid to the expected format by adding a Mask of /^[0-9a-f]{13}$/ with a validation message in Ca.xml and Cert.xml, and by wrapping the XPath calls in CAsField.php and CertificatesField.php with preg_match('/^[0-9a-f]{13}$/', $refid) guards that skip evaluation for non-conforming input.

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 (GitHub_M) PRIMARY 7.1 HIGH
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L
vuln.today AI 6.3 MEDIUM

Network-reachable web UI (AV:N) but blind char-by-char oracle (AC:H) requiring CA/Cert Manager rights (PR:L); reads secrets of other domains so S:C/C:H, with no integrity or availability impact (I:N/A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
Low

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 16:02 EUVD
CVE Published
Oct 15, 2026 - 15:08 cve.org
HIGH 7.1

DescriptionCVE.org

OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.10, the Trust module stores attacker-controlled certificate authority and certificate refid values and interpolates them into XPath expressions in src/opnsense/mvc/app/models/OPNsense/Trust/FieldTypes/CAsField.php and src/opnsense/mvc/app/models/OPNsense/Trust/FieldTypes/CertificatesField.php. A user with CA Manager or Certificate Manager privileges can submit a crafted refid and repeatedly retrieve the object to obtain a boolean refcount oracle, allowing values in config.xml to be recovered character by character. Exposed values can include password hashes, API credentials, certificate private keys, VPN key material, and high-availability credentials, enabling privilege escalation and compromise of other security domains. This issue is fixed in version 26.1.10.

Technical POC Analysis

CWE-91 (XML Injection / Blind XPath Injection), also tracked as CWE-643.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

OPNsense firewall and routing deployments running versions earlier than 26.1.10 are exposed to a high-severity flaw that lets staff already entrusted with certificate and certificate-authority management duties extract sensitive configuration material - password hashes, API credentials, certificate private keys, VPN key material, and high-availability credentials - one character at a time from the device's config.xml. Because that material underpins identity, remote access, and failover trust across the estate, a single over-privileged or compromised trust administrator account can escalate into compromise of adjacent security domains. Leadership should treat this as a privileged-user and credential-exposure risk rather than an external, drive-by attack path.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict CA Manager and Certificate Manager privileges to a minimal set of named, MFA-protected administrator accounts and remove the roles from shared or service accounts; isolate OPNsense management interfaces and APIs to a hardened out-of-band network with no exposure to general user segments; log and alert on Trust-module certificate/CA refid query patterns that indicate iterative boolean probing; rotate certificate private keys, API credentials, VPN key material, high-availability credentials, and local password hashes on a prioritized schedule; store and transmit config.xml backups encrypted, and treat any exported configuration as compromised until credentials are rotated. Note that a fix version of 26.1.10 is referenced in the vulnerability description - confirm with the vendor whether that release addresses the issue before relying on it. Exploitation status: no public exploit identified at time of analysis.

Threat Intelligence Overview

EPSS Score
0.7%
Top 47% exploitable
Prevalence
Medium
popular open-source firewall, common in SMB/prosumer, not ubiquitous enterprise core
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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