CVE-2018-7749: AsyncSSH SSH Server Authentication Bypass
Summary
CVE-2018-7749: AsyncSSH SSH Server Authentication Bypass. Affects asyncssh versions < 1.12.1. Fixed in 1.12.1. How to fix ↓
Also tracked for
- python-asyncssh · Debian:11
The same CVE-2018-7749 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
AsyncSSH is a Python package available on PyPI that provides an asynchronous SSH server and client implementation. It allows users to establish secure connections and perform various SSH operations. The vulnerability in AsyncSSH versions before 1.12.1 allows an attacker to bypass authentication during SSH server connections. This can be exploited by a customized SSH client that skips the authentication step, potentially leading to unauthorized access and compromise of the server.
Vulnerability Detail
The vulnerability in AsyncSSH arises from the server implementation not properly checking whether authentication is completed before processing other requests. This flaw enables an attacker to establish a connection to the server without providing valid credentials. By exploiting this vulnerability, an attacker can bypass the authentication step and gain unauthorized access to the server. The impact of this vulnerability is critical, as it allows for unauthorized access and potential compromise of the server's resources and data.
How To Fix
Latest published version: 2.24.1 as of 23 Oct 2026
pip install --upgrade "asyncssh==2.24.1"
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
1.12.1
This is the first release that contains the fix.
pip install --upgrade "asyncssh==1.12.1"
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
As a workaround, users can implement additional authentication checks within their SSH server implementation to ensure authentication is completed before processing other requests. This can be achieved by modifying the code to include proper authentication validation. Here is an example of how to add an authentication check in the asyncssh.connection.SSHConnection._recv_packet function:
import asyncssh
async def _recv_packet(self):
if not self.is_authenticated():
raise asyncssh.DisconnectError(
asyncssh.DISCONNECT_PROTOCOL_ERROR, 'Authentication not completed')
# Rest of the function code
Conclusion
The vulnerability in AsyncSSH versions before 1.12.1 allows an attacker to bypass authentication during SSH server connections. It is critical to upgrade to version 1.12.1 or later to fix this vulnerability. Implementing additional authentication checks within the SSH server implementation can serve as a workaround. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for asyncssh →
FAQ
AsyncSSH is a Python package that provides an asynchronous SSH server and client implementation. It allows users to establish secure connections and perform SSH operations.
The vulnerability allows an attacker to bypass authentication during SSH server connections, potentially leading to unauthorized access and compromise of the server.
To fix this vulnerability, upgrade to AsyncSSH version 1.12.1 or later by running 'pip install --upgrade asyncssh'.
Yes, you can implement additional authentication checks within your SSH server implementation to ensure authentication is completed before processing other requests. See the 'workaround' section for more details.
You can find more information about this vulnerability in the GitHub Advisory Database: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-97cv-6pjf-5f9q/GHSA-97cv-6pjf-5f9q.json
References
Related vulnerabilities
Recent vulnerabilities recorded for asyncssh.