Skip to main content

Fail2ban EUVDEUVD-2026-98268

| CVE-2026-109786 MEDIUM
Improper Output Neutralization for Logs (CWE-117)
2026-10-13 mitre GHSA-xw36-3g63-5wfw
5.3
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Connect to target OpenSSH service
  2. Delivery
    Offer crafted username 'x VICTIM-IP on'
  3. Exploit
    sshd logs username verbatim
  4. Execution
    fail2ban filter parses injected IP
  5. Impact
    Legitimate victim IP banned (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

The target must run fail2ban 0.10.5 through 1.1.1 (before commit ddd879d) with the default sshd filter (config/filter.d/sshd.conf) active and an sshd jail configured to ban on failed logins against OpenSSH logs - the description states the default filter mode is affected, so no non-default configuration is needed. No authentication is required (PR:N): the attacker only needs network reachability to the SSH service to submit a crafted username like 'x VICTIM-SOURCE-IP on'. Limiting factors that reduce real-world impact: the host must actually deploy vulnerable fail2ban with the sshd jail enabled (common on internet-facing Linux but not universal), and the practical damage is bounded by fail2ban's ban action (e.g., temporary firewall block) and bantime, yielding denial-of-service rather than system compromise.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, base 5.3 Medium) describes a cleanly remote, low-complexity, unauthenticated issue whose only impact is availability - there is no confidentiality or integrity loss to the host. This is a log-injection (CWE-117) weakness, not code execution: the real-world consequence is a denial-of-service in which an attacker coerces fail2ban into banning an attacker-chosen source IP, which can lock out legitimate administrators or users. No EPSS score was supplied, so exploitation probability cannot be quantified. There is no CISA KEV listing and no public exploit identified at time of analysis - the patch commit includes only a test-case log line, which is not a weaponized POC. Net assessment: this is a genuine, easily triggered abuse-of-functionality bug against a very common defensive tool, but its ceiling is disruption (self-inflicted lockout / blocking a target's IP), not compromise, so it is a real but moderate operational priority rather than a critical emergency. One signal conflict to note: the input tag 'Information Disclosure' contradicts the CVSS impact profile (C:N, A:L), which indicates availability denial, not disclosure.

Exploit ScenarioDerived

A remote unauthenticated attacker connects to a target running OpenSSH protected by vulnerable fail2ban with the default sshd filter, and offers a login username crafted as 'x VICTIM-IP on'. OpenSSH logs the offered username verbatim, and the overly permissive filter regex parses the embedded 'VICTIM-IP on' as the host/suffix, so fail2ban attributes the failed attempts to VICTIM-IP and bans it - blocking a legitimate user or administrator. No public exploit is identified, though the patch's test fixture demonstrates the exact injection string.

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

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

Alert me

AnalysisAIv1 – Oct 13, 2026

Source-IP misattribution in fail2ban's default sshd filter allows a remote, unauthenticated attacker to have fail2ban ban an arbitrary IP address of their choosing. Because OpenSSH records the offered username verbatim in its log lines and fail2ban 0.10.5 through 1.1.1 (before commit ddd879d22664904ace24e1255ac6571808c58187) accepts an "on <token>" suffix after the parsed host address, an attacker can connect to the SSH service using a username such as "x VICTIM-IP on" and cause subsequent failed-login entries to be attributed to that victim address, resulting in a temporary firewall block against a legitimate user or host. The impact is availability-only (CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, base 5.3 Medium) with no confidentiality or integrity loss; no public exploit identified at time of analysis, and the issue is not listed in CISA KEV.

RemediationAI

Apply the upstream fix by updating to a fail2ban release that includes commit ddd879d22664904ace24e1255ac6571808c58187 (upstream fix available as a PR/commit; a released patched version number is not independently confirmed, so confirm the packaged changelog from https://github.com/fail2ban/fail2ban/commit/ddd879d22664904ace24e1255ac6571808c58187 before relying on a distro build). If immediate upgrade is not possible, edit the local filter (copy config/filter.d/sshd.conf to /etc/fail2ban/filter.d/sshd.conf if not already customized) and replace the vulnerable definitions so that __on_port_opt = (?: port \d+)? and __suff = %(__on_port_opt)s(?: \[preauth\])?\s* , removing the (?: on \S+ ) alternation; then run fail2ban-client reload. Trade-off: fail2ban has historically tolerated non-standard daemon suffixes in some log formats, so this tighter regex will no longer match lines carrying an "on <token>" suffix produced by unusual sshd wrappers or patched daemons - validate against your own auth logs before wide deployment and, if such lines exist, add a narrower, reviewed variant instead. Complementary mitigations with explicit trade-offs: add your legitimate user and infrastructure source addresses to the jail's ignoreip/ignorecommand list so they cannot be banned (side effect: reduces the filter's ability to ban a truly abusive host sharing that address); reduce exposure of sshd to trusted networks or a bastion/VPN so unauthenticated username injection is not reachable from the internet (side effect: restricts legitimate remote access paths); and tune bantime/findtime/maxretry to shorten any erroneous ban window (side effect: weakens brute-force deterrence for genuine attackers). Because the only impact is availability and there is no confidentiality or integrity loss, no host isolation or credential rotation is required - focus on patching and on monitoring fail2ban.log for bans attributed to unexpected internal or partner addresses.

Affected VersionsENISA

fail2ban 0.10.5 ≤1.1.1

Affected Packages

euvd fail2ban no fix

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 root cause is CWE-117 (Improper Output Neutralization for Logs), applied here in reverse: fail2ban's log-parsing regex is too permissive about what may follow the source address in an OpenSSH log line. Under the hood, fail2ban tails /var/log/auth.log (or journald) and matches lines emitted by sshd such as "Invalid user <name> from <ip> port <n> [preauth]". In the affected versions, config/filter.d/sshd.conf defined __suff and __on_port_opt as repetitions of the alternation (port \d+ | on \S+), allowing up to two or three such tokens after the host. OpenSSH interpolates the supplied username into the log message without escaping, so an attacker who submits the username "x 192.0.2.1 on" produces the line "Connection closed by invalid user x 192.0.2.1 on 192.0.2.77 port 4444 [preauth]" - the regex consumes "192.0.2.1 on" as part of the suffix and extracts 192.0.2.1, not 192.0.2.77, as the offending host. The upstream fix (commit ddd879d2) rewrites the patterns so __on_port_opt is strictly (?: port \d+)? and __suff is derived from it with only an optional [preauth] tail, removing the "on \S+" branch entirely; the accompanying test fixture in fail2ban/tests/files/logs/sshd adds a regression case asserting the injected username "x 192.0.2.1 on" resolves to the true host 192.0.2.77. The affected CPE range is cpe:2.3:a:fail2ban:fail2ban up to and including 1.1.1 prior to the fix commit, with the default (shipped) sshd filter mode affected rather than a non-default configuration.

Know when Fail2Ban 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 (mitre) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

Remote unauthenticated log injection via an SSH username requires no privileges or interaction (AV:N/AC:L/PR:N/UI:N); the only effect is availability denial by banning IPs, so C:N/I:N/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 (mitre).

CVSS VectorVendor: mitre

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

DescriptionCVE.org

In fail2ban 0.10.5 through 1.1.1 before ddd879d, the sshd filter (config/filter.d/sshd.conf) accepts an "on <token>" suffix after the host address. Because OpenSSH logs the offered username verbatim, a remote unauthenticated attacker can use a username such as "x VICTIM-SOURCE-IP-ADDRESS on" to make fail2ban associate failed login attempts with an arbitrary source IP address and ban it (e.g., to block logins from a legitimate user). The default filter mode is affected.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
High
widely deployed SSH brute-force protection on internet-facing Linux servers
Social Media
1
Sightings
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
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
High

Priority Score

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy