Skip to main content

OPNsense CVE-2026-119423

| EUVDEUVD-2026-113803 MEDIUM
Improper Output Neutralization for Logs (CWE-117)
2026-10-30 VulnCheck GHSA-m68j-m67p-c39j
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach WebGUI login page (unauthenticated)
  2. Delivery
    Submit username with %0d%0a CRLF payload
  3. Exploit
    Forged auth-failure line injected into syslog-ng program() stream
  4. Execution
    lockout_handler readline() parses forged line, extracts victim IP
  5. Persist
    Threshold exceeded, pfctl adds IP to sshlockout table
  6. Impact
    Victim IP blocked and active pf states killed (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log output neutralization
Exploitation Conditions

No special conditions beyond network reachability - unauthenticated remote exploitation works against default configurations of OPNsense core (the lockout_handler brute-force daemon is always active and the syslog-ng program() destination ships without flags(syslog-protocol)). The attacker needs only HTTP access to the WebGUI /index.php login page and a valid CSRF token fetched from that page; no credentials are required (PR:N). Limiting factors: the attacker must be able to reach the WebGUI login interface (so management-plane exposure governs reach), impact is confined to availability - forced blocking of attacker-chosen IPs and brute-force-counter reset, not code execution or data access - and affected builds are OPNsense core before 26.7.8 (with the appended note indicating backported fixes on other branches).

Impact

All exploitability signals point one direction: the vendor CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N) describes a remotely reachable, low-complexity, unauthenticated attack with no user interaction, and the GHSA advisory confirms this is reachable against a default install because lockout_handler is always active. The only base impact is availability (VA:L; VC:N/VI:N/VA:L), which is consistent with the described effect - forced IP blocking and killing of pf states rather than code execution or data disclosure - yielding a medium 6.9 score. No EPSS score was provided in the input, so exploitation-probability cannot be weighed; this is a gap, not a low score, and should not be read as 'low likelihood.' The CVE is NOT listed in CISA KEV in the supplied data, so there is no evidence of active exploitation; however, a detailed, lab-verified public PoC reference exists in the vendor advisory (including exact payload and verification commands), so weaponization is trivial for a motivated attacker. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the picture of an easily-exploited but availability-only, non-RCE issue. Net: a real and credible unauthenticated remote DoS / brute-force-bypass worth patching on a normal priority cycle rather than an emergency, with the caveat that missing EPSS and the availability-only impact are the main things tempering urgency.

Exploit ScenarioDerived

An unauthenticated attacker who can reach the OPNsense WebGUI login page submits a handful of login requests (as few as 2, per the advisory's 6-entry math against the default threshold of 5) whose 'usernamefld' value carries a CRLF-injected fragment mimicking a 'Web GUI authentication error ... from <victim-IP>' event. The lockout_handler parses the forged line, extracts the attacker-chosen IP, and after the threshold runs 'pfctl -t sshlockout -T add <victim-IP>' plus 'pfctl -k' - blocking an arbitrary address (e.g. 8.8.8.8, the upstream gateway, or an admin host) and tearing down its firewall states. A detailed, lab-tested public PoC reference exists in the vendor GHSA advisory; it is not independently verified as working exploit code here.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 30, 2026

Unauthenticated CRLF injection in OPNsense's WebGUI login form lets a remote attacker forge syslog lines that the always-on lockout_handler parses as genuine authentication failures, causing attacker-chosen IP addresses to be added to the sshlockout pf table and their active pf states to be killed - disrupting management access, DNS, WAN or monitoring connectivity. A second variant injects forged 'Accepted' entries to reset the brute-force counter for an attacking host, enabling continued password guessing. The flaw affects OPNsense core before 26.7.8 (with backported fixes on the 26.1 and 26.4 branches), is reachable against a default install with only HTTP access to /index.php plus a CSRF token, and is scored 6.9 under CVSS 4.0 by the vendor (our assessment: CVSS 3.1 AV:N/AC:L/PR:N/UI:N, availability-only impact). It is not listed in CISA KEV and no active exploitation is confirmed, though the vendor advisory publishes a lab-tested proof-of-concept payload.

RemediationAI

Vendor-released patch: upgrade to OPNsense core 26.7.8; administrators on the older branches should move to 26.1.11 or 26.4.1p1. The fix is the pair of upstream commits (14f8f7dd1d5f06522d60794a7beeac7adb9eca68 and 2076f2c195bf9537ec220f0e5d6aff998f057410) referenced from advisory GHSA-2v2x-m4j7-76pv, which append the true REMOTE_ADDR to authentication log messages. Because the advisory attributes exposure to the program() destination shipping without flags(syslog-protocol) rather than to an optional feature, there is no documented configuration toggle that removes the exposure on unpatched systems; the practical compensating control is to restrict reachability of the WebGUI /index.php login page to trusted management networks or VPN addresses via firewall rules or interface binding, accepting that this narrows administrative access and does not fully eliminate the risk from hosts already inside the permitted management plane. Where syslog-ng templates are locally managed, adding syslog-protocol style newline sanitization to the lockout program() destination would address the injection point, but it changes log formatting consumed by lockout_handler and is not the vendor-supported fix.

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

Root cause is CWE-117 (improper neutralization of CRLF sequences in log output) compounded by an inconsistency between two syslog-ng destinations. The WebGUI login handler in src/www/authgui.inc passes $_POST['usernamefld'] unsanitized into auth_log()/log_msg(), which emits it via syslog(LOG_AUTH); a second path in OPNsense/Auth/AuthenticationFactory.php logs the same username (and the patch commits add the real REMOTE_ADDR to those messages). syslog-ng routes LOG_AUTH to the lockout_handler brute-force daemon through a program() destination that ships without flags(syslog-protocol), while the parallel file destination does use that flag - so \n bytes survive only on the program path, where the daemon's readline() splits them into standalone log records. The injected fragment matches the daemon's '.*Web GUI authentication error.*' BLOCK rule and its first numeric token is taken as the offending IP, after which pfctl -t sshlockout -T add <ip> and pfctl -k <ip> run once the default threshold of five is exceeded; each login attempt yields three auth-facility entries, so two requests suffice. The same parsing allows forged '.*Accepted.*' lines to delete a host's suspect counters. No memory-corruption, code-execution or information-disclosure primitive is involved; impact is confined to availability and to weakening of the brute-force lockout control.

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

Unauthenticated remote, low-complexity injection against default config (AV:N/AC:L/PR:N/UI:N); impact is availability-only DoS via forced IP blocking, no confidentiality or integrity to the system (A:L).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/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
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

OPNsense core before 26.7.8 contains a log injection vulnerability that allows unauthenticated attackers to plant victim IP addresses in the lockout_handler by submitting crafted WebGUI login usernames. Attackers can submit usernames like 'Invalid user <victim-ip>' repeatedly to add the victim to the sshlockout table, blocking SSH and WebGUI access and killing its pf states.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Medium
popular open-source firewall/router OS, broad but not universal deployment
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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