CVE-2026-62949: AsyncSSH: asyncio event-loop freeze via SSH maximum packet size = 0 in SSH_MSG_CHANNEL_OPEN / OPEN_CONFIRMATION

Published Sep 16, 2026
·
Updated

AsyncSSH is a Python package which provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework. Prior to 2.24.0, processchannelopen and processchannelopenconfirmation in asyncssh/connection.py accept a peer-supplied sendpktsize value of zero. When channel data reaches SSHChannel.flushsendbuf in asyncssh/channel.py, the zero value causes each loop iteration to slice and remove zero bytes without reducing the send window, leaving the synchronous loop permanently true with no await point. A malicious SSH server can trigger the client path through SSHMSGCHANNELOPENCONFIRMATION before the first channel write, while an authenticated client can trigger the server path through SSHMSGCHANNELOPEN and freeze every current and future connection handled by the process. This vulnerability is fixed in 2.24.0.

Affected Software

1 affected component
pypi/asyncssh<2.24.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade asyncssh to a version that resolves this vulnerability.

    Fixed in 2.24.0

Event History

Sep 16, 2026
CVE Published
via MITRE·08:00 PM
Data Sourced
via MITRE·08:00 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to the client and server attack paths?

AsyncSSH clients can be frozen by a malicious SSH server. AsyncSSH servers can be frozen by an authenticated client, affecting every current and future connection handled by that process.

2

What does an attacker need to do to trigger the denial of service?

A malicious server can send SSH_MSG_CHANNEL_OPEN_CONFIRMATION with a maximum packet size of zero before the client’s first channel write. An authenticated client can send SSH_MSG_CHANNEL_OPEN with a zero send_pktsize to trigger the server-side path.

3

What is the impact once exploitation succeeds?

The zero packet size causes a synchronous send-buffer loop which never makes progress and has no await point. This freezes the asyncio event loop, producing a denial of service.

4

Which versions fix the issue?

The issue is fixed in AsyncSSH 2.24.0. Versions prior to 2.24.0 are affected according to the available information.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203