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.
The sshd jail is enabled with the stock filter.d/sshd.conf (any mode: normal, the default, extra, or aggressive). Before 1.1.1 the filter only matches log lines from a process named sshd (OpenSSH before 10, or systems that log as sshd); 1.1.1 also matches OpenSSH 10's sshd-session.
Override __on_port_opt and __suff in a local filter.d/sshd.local so that only an optional "port N" may follow the host address, as in the upstream fix: __on_port_opt = (?: port \d+)? and __suff = %(__on_port_opt)s(?: [preauth])?\s*. Add the administrator's own addresses to ignoreip.
Apply upstream commit ddd879d22664904ace24e1255ac6571808c58187, or upgrade to the first fail2ban release after 1.1.1 that contains it.