Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as CA/Certificate Manager
-
DeliverySubmit crafted refid with XPath payload
-
ExploitRetrieve object to read refcount oracle
-
ExecutionRecover config.xml secrets character by character
-
ImpactEscalate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:L
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).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
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-102112
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB