Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to target OpenSSH service
-
DeliveryOffer crafted username 'x VICTIM-IP on'
-
Exploitsshd logs username verbatim
-
Executionfail2ban filter parses injected IP
-
ImpactLegitimate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
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.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
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
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
fail2ban is a daemon to ban hosts that cause multiple authentication errors. Rated high severity (CVSS 8.1), this vulner
config/filter.d/cyrus-imap.conf in the cyrus-imap filter in Fail2ban before 0.8.11 allows remote attackers to trigger th
config/filter.d/postfix.conf in the postfix filter in Fail2ban before 0.8.11 allows remote attackers to trigger the bloc
server/action.py in Fail2ban before 0.8.8 does not properly handle the content of the matches tag, which might allow rem
The apache-auth.conf, apache-nohome.conf, apache-noscript.conf, and apache-overflows.conf files in Fail2ban before 0.8.1
EUVD-2026-98268
GHSA-xw36-3g63-5wfw
NVD
CVE.org
EPSS
Exploit-DB