Skip to main content

OPNsense EUVDEUVD-2026-102114

| CVE-2026-57155 CRITICAL
Path Traversal (CWE-22)
2026-10-15 GitHub_M
9.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with Firewall Alias Edit privilege
  2. Delivery
    Configure attacker-controlled GeoIP source URL
  3. Exploit
    Upload archive with traversing country_code
  4. Execution
    Write newsyslog fragment and oversized log as root
  5. Persist
    Trigger default hourly root cron job
  6. Impact
    Execute arbitrary commands as root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Attacker must hold an authenticated account with the 'Firewall Alias Edit' privilege and must be able to configure a GeoIP alias pointing to an attacker-controlled source URL - a non-default alias configuration the operator supplies. The supplied archive's CSV country_code must contain traversal characters so process_zip()/process_gzip() write files (with -IPv4/-IPv6 suffixes) outside /usr/local/share/GeoIP/alias. Full root code execution additionally requires planting a crafted newsyslog fragment plus an oversized log file so the default hourly root cron job runs the payload. Limiting factors: exploitation is gated by the Firewall Alias Edit privilege (not unauthenticated), depends on the attacker controlling the GeoIP source archive contents, and relies on the default hourly root cron/newsyslog behavior being present; affected only prior to version 26.1.11.

Impact

CVSS is 9.9 (critical) with vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, indicating a network-reachable, low-complexity attack that escapes its privilege boundary (S:C) to achieve full compromise. The key tempering signal is PR:L: exploitation requires an already-authenticated account holding the 'Firewall Alias Edit' privilege, so this is a privilege-escalation-to-root primitive for a semi-trusted operator rather than an unauthenticated internet-facing bug. No EPSS probability score and no CISA KEV status were provided in the input, so exploitation-likelihood and active-exploitation signals cannot be assessed quantitatively - their absence should be treated as 'unknown', not 'low'. No SSVC decision data was supplied. The root cause (unvalidated two-character country_code used in output filenames) is confirmed by the vendor advisory and the patch commit diff, which makes the vulnerability highly credible and straightforward to weaponize once an attacker has the required privilege. The realistic priority is high for environments with multiple firewall administrators, delegated/role-based access, or MSP/multi-tenant management where an Alias-Edit operator is not fully trusted; it is lower for single-admin deployments where the only accounts able to reach this code already have full root-equivalent control.

Exploit ScenarioDerived

An authenticated user with the Firewall Alias Edit privilege (for example a delegated junior admin or a compromised limited operator account) creates a GeoIP alias pointing at an attacker-controlled source URL and uploads an archive whose CSV country_code value contains path-traversal sequences. The importer, running as root, writes the attacker's content (a crafted newsyslog fragment plus an oversized log file) to a directory outside the intended GeoIP path, and the default hourly root cron job then executes the planted commands as root. A detailed technical write-up exists publicly (hackerask.com), but no confirmed weaponized exploit code was provided in the input.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.9% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Root-level code execution on OPNsense firewalls running versions prior to 26.1.11 is achievable by an authenticated operator who holds the 'Firewall Alias Edit' privilege and can point a GeoIP alias at an attacker-controlled source URL. The GeoIP importer's process_zip() and process_gzip() routines trust the CSV country_code field when building output filenames under /usr/local/share/GeoIP/alias, so a crafted value traverses out of that directory and writes attacker-controlled files as root; chaining a planted newsyslog fragment with an oversized log file then lets the default hourly root cron job execute the payload, yielding complete firewall compromise (CVSS 9.9, AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H). No public exploit code and no confirmed active exploitation were identified at time of analysis, and exploitation requires a non-default alias configuration that the operator must supply.

RemediationAI

Upgrade OPNsense to version 26.1.11 or later, which is the vendor-released patch; the two upstream commits c46aced9c47d956167e294911113bc334fea5f48 and e7fbfaa7f5e070da667e3f243da11fd3d4b731fa enforce a two-character alphanumeric country_code in both process_zip() and process_gzip(), and the advisory GHSA-wjqq-rfmm-v5h3 confirms the fix. If upgrading immediately is not possible, revoke the 'Firewall Alias Edit' privilege from all accounts that do not strictly require it, since the attack is gated on PR:L and cannot be reached unauthenticated; the trade-off is that legitimate alias administration must be performed by a small, monitored set of administrators. Additionally, restrict GeoIP alias sources to the official OPNsense-maintained feed rather than arbitrary or third-party URLs - this removes the attacker's ability to supply the malicious archive, though it limits operational flexibility for custom GeoIP data sets. As a detective control, audit /usr/local/share/GeoIP/alias and other writable system paths for unexpected files with -IPv4/-IPv6 suffixes, and review newsyslog configuration fragments for unauthorized additions, since the root-code-execution chain depends on planting a newsyslog fragment alongside an oversized log file for the hourly root cron job. Neither workaround eliminates the traversal bug itself; they only raise the cost of exploitation, so patching to 26.1.11 remains the only complete fix.

Affected VersionsENISA

core < 26.1.11

Affected Packages

euvd core fix: 26.1.11

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 CWE-22 path traversal introduced in the GeoIP alias data pipeline of OPNsense core (cpe:2.3:a:opnsense:core:*:*:*:*:*:*:*:*), a FreeBSD-based firewall and routing platform. The importer in src/opnsense/scripts/filter/lib/alias/geoip.py downloads a GeoIP archive from a user-configurable source, decompresses it via process_zip() or process_gzip(), parses the embedded CSV, and derives an output filename from the record's country_code field before writing into /usr/local/share/GeoIP/alias with an -IPv4 or -IPv6 suffix. Because that field was never constrained, values containing directory separators or traversal sequences escape the intended alias directory and land attacker-controlled content elsewhere on disk with root ownership. The upstream fix hardens the parsing rather than the path: the ZIP branch now requires len(parts[4]) == 2 and parts[4].isalnum(), and the GZIP branch adds an equivalent elif guard requiring a two-character alphanumeric country code, rejecting any record whose country code could contain path metacharacters. The escalation to full root command execution is not in the traversal itself but in the follow-on chain: an attacker-writable newsyslog fragment plus an oversized log file is consumed by the default hourly root cron job, converting arbitrary root file writes into arbitrary root command execution. The CVSS scope change (S:C) reflects that low-privilege Firewall Alias Edit access is leveraged to cross into the root security authority of the appliance.

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 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Reachable via the web UI (AV:N) by a low-privileged Alias-Edit operator (PR:L) with no user interaction; traversal yields root code execution escaping the app boundary (S:C) with full C/I/A impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/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:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 16:02 EUVD
CVE Published
Oct 15, 2026 - 15:13 cve.org
CRITICAL 9.9

DescriptionCVE.org

OPNsense is a FreeBSD based firewall and routing platform. Prior to version 26.1.11, the Firewall Alias GeoIP importer's process_zip() and process_gzip() paths in src/opnsense/scripts/filter/lib/alias/geoip.py use an unvalidated CSV country_code value to construct output filenames below /usr/local/share/GeoIP/alias. A user with Firewall Alias Edit privilege can configure an attacker-controlled GeoIP source URL and supply an archive whose country code traverses into another existing directory, causing attacker-controlled content to be written as root with an -IPv4 or -IPv6 suffix. A crafted newsyslog fragment and oversized log file can use the default hourly root cron job to execute commands as root, resulting in complete firewall compromise. This issue is fixed in version 26.1.11.

Technical POC Analysis

CWE-22 path traversal.

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 firewalls running versions prior to 26.1.11 can be fully compromised - root-level code execution - by an authenticated operator holding the Firewall Alias Edit privilege, meaning any administrator with that non-default permission (or any attacker who obtains such credentials) can convert routine alias management into complete control of a perimeter security device. Because the firewall is typically the enforcement point between the organization and the internet, successful exploitation exposes all downstream network segments, credentials, and logging integrity, and the compromise is difficult to detect since the attacker operates with root authority on the very system that produces the audit trail. Leadership should treat this as a high-priority insider-and-privileged-account risk affecting all OPNsense deployments at or below the affected release.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: revoke the 'Firewall Alias Edit' privilege from all non-essential accounts and enforce least privilege with MFA on firewall administration; disable or repoint any GeoIP alias whose source URL is external, untrusted, or unverified; restrict firewall-initiated outbound traffic to allow-listed GeoIP providers only; monitor and integrity-check /usr/local/share/GeoIP/alias, the newsyslog configuration, and log-rotation artifacts for unauthorized writes or anomalous oversized files; audit and alert on the hourly root cron job for unexpected execution; isolate firewall management interfaces on a dedicated administrative network segment and rotate credentials for all privileged operators.

Threat Intelligence Overview

EPSS Score
0.9%
Top 42% exploitable
Prevalence
Medium
popular open-source firewall but adopted by a specific operator community, not ubiquitous
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.9%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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