Skip to main content

OPNsense EUVDEUVD-2026-113793

| CVE-2026-119409 HIGH
OS Command Injection (CWE-78)
2026-10-30 VulnCheck GHSA-q3x8-9859-gj9r
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with restricted System:Firmware API key
  2. Exploit
    Store crafted mirror URL via POST /api/core/firmware/set
  3. Execution
    Fetch firmware info, triggering opnsense-update eval of mirror
  4. Impact
    Execute arbitrary commands as root on the firewall

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: 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 an authenticated OPNsense account or API key that holds the 'System: Firmware' privilege (PR:H) - no root password, SSH access, or unrestricted administrator account is needed. The concrete trigger is storing a mirror URL containing shell command-substitution metacharacters through POST /api/core/firmware/set, which survives input validation on unpatched versions; the injected command runs the next time firmware information is requested (POST→GET /api/core/firmware/info) or whenever the firmware WebUI page loads, because opnsense-update -M's mirror_abi() evaluates the stored value with eval. The related sed-injection path can additionally disable package signature verification. Limiting factors: a valid credential with the specific firmware privilege is mandatory (this is not remote-unauthenticated), and the flaw is fixed in 26.7.8 and 26.10 - the vendor patch (input masking plus removing the eval) is the complete remediation.

Impact

This is a genuine high-priority issue rather than CVSS-score inflation. The CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H, 8.6) describes a network-reachable, low-complexity flaw whose only real gate is authentication: PR:H confirms the attacker must be authenticated, specifically holding the 'System: Firmware' privilege. The signals are internally consistent - high confidentiality/integrity/availability impact (full root command execution on a firewall appliance) with no user interaction, offset by the credential requirement. A publicly documented, reporter-verified proof of concept exists in the vendor GHSA advisory (GHSA-p683-f7x2-pm4p) and is referenced by VulnCheck and abraxaslabs, so exploitability is not theoretical. However, there is no EPSS score in the supplied data and no CISA KEV listing, so there is no evidence of active or widespread exploitation at time of analysis - the vuln.today 'this_week' decision label reflects a serious-but-not-emergency priority. The practical risk is highest for OPNsense deployments that delegate the firmware privilege or issue scoped API keys, because this flaw lets such a limited account escalate to root and persist (the payload re-executes whenever firmware info is fetched or the firmware WebUI page loads).

Exploit ScenarioDerived

An authenticated user or API key holding only the restricted 'System: Firmware' privilege submits a firmware mirror URL containing shell command-substitution syntax via POST /api/core/firmware/set. When firmware information is next retrieved (via /api/core/firmware/info or by loading the firmware WebUI page), opnsense-update's mirror_abi() passes the stored value through eval MIRROR="${MIRROR}", executing the injected command as root. A reporter-verified PoC in the vendor advisory demonstrates creation of a root:wheel-owned marker file using exactly this chain.

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

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

Alert me

AnalysisAIv1 – Oct 30, 2026

Command injection in OPNsense firmware management (fixed in 26.7.8 and 26.10) lets an authenticated user holding only the 'System: Firmware' privilege store a crafted firmware mirror URL through POST /api/core/firmware/set, which the backend later evaluates as shell code the next time firmware information is retrieved or the firmware WebUI page loads - resulting in arbitrary command execution with root privileges. A related sed-injection path lets the same restricted account disable package signature verification. The vendor advisory includes a full proof-of-concept reproduction on OPNsense Community Edition 26.7.7; a public PoC reference exists, it is not verified as working exploit code, and no active exploitation is confirmed at time of analysis.

RemediationAI

Vendor-released patch: upgrade to OPNsense 26.7.8 (with 26.10 also carrying the fix for the opnsense-update package). The fix is two-part and both sides must land: the core model mask in Firmware.xml rejecting literal double quotes and pipe characters (commit 1cc41fc39da99d59818c789b3b561f1515126f47, with related commit 8e214533d33c3af7481e86f616ee615adc6a0a73) and removal of the eval in mirror_abi() in favour of a sed substitution limited to ${ABI} in opnsense-update (commit 9bfd3b7020499b6032ee64804193a9f3ce8178fa). Until the appliance is upgraded, exposure is bounded by the prerequisite itself: the flaw is only reachable by an account or API key holding the 'System: Firmware' privilege, so that privilege should be limited to fully trusted administrators and API keys with it should be rotated or revoked; resetting the firmware mirror field to the distribution default also clears any payload already stored in the configuration, at the cost of losing custom mirror settings. These are stopgaps only - the vendor patch is the complete remediation. Advisory: https://github.com/opnsense/core/security/advisories/GHSA-p683-f7x2-pm4p; additional detail at https://www.vulncheck.com/advisories/opnsense-before-26.7.8-root-command-injection-via-firmware-mirror-setting and https://abraxaslabs.tech/research/opnsense-firmware-mirror-sed.

Affected VersionsENISA

core 0 <26.7.8

Affected Packages

euvd core fix: 26.7.8

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 firmware settings are modelled by the MVC model src/opnsense/mvc/app/models/OPNsense/Core/Firmware.xml, whose 'mirror' field was a plain TextField with no character masking. When firmware information is requested, the backend shells out to 'opnsense-update -M', and the mirror_abi() function in src/update/opnsense-update.sh.in expanded the stored value using 'eval MIRROR="${MIRROR}"' - an inherited FreeBSD pkg design choice. Because command-substitution syntax such as $(...) survives validation and is stored as configuration, the eval turns attacker-controlled data into a root-privileged shell command, which is CWE-78 (improper neutralisation of special elements used in an OS command). The same unvalidated value also flowed into a sed expression, giving a second injection path that can switch off package signature verification. The upstream fixes are a Mask of /[^|"]+/ on the mirror field (rejecting literal double quotes and pipe characters) and removal of the eval in mirror_abi() in favour of an explicit sed substitution limited to ${ABI}. The affected component is tracked as cpe:2.3:a:opnsense:core and the opnsense-update package.

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 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Network API, low complexity, no user interaction; PR:L because it needs an authenticated but restricted non-admin firmware privilege; root OS command execution yields high C/I/A.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

OPNsense before 26.7.8 contains a command injection vulnerability that allows authenticated users with the System: Firmware privilege to execute commands as root by storing a malicious firmware mirror URL. Attackers can submit shell metacharacters through POST /api/core/firmware/set that opnsense-update evaluates with eval, and can also disable package signature verification through sed injection.

Technical POC Analysis

CWE-78 (OS command injection) in OPNsense's firmware mirror handling.

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 firmware management contains a high-severity command injection flaw that allows a user with only firmware administration rights to execute commands as root. This means a relatively low-privileged insider or compromised account could gain full control of the firewall, potentially disrupting network security and exposing sensitive data. Leadership should prioritize patching because OPNsense is often a critical perimeter defense, and exploitation could undermine the entire security posture.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
2.5%
Top 15% exploitable
Prevalence
Medium
popular open-source firewall/router distro, common but not ubiquitous in enterprises
Data Quality
5 sources
Confidence: Medium

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 2.5%
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
High
Technical Impact
Total

Priority Score

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

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

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