Bug 2250326 (CVE-2023-46445)

Summary: CVE-2023-46445 python-asyncssh: Rogue Extension Negotiation
Product: [Other] Security Response Reporter: Borja Tarraso <btarraso>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: amctagga, aoconnor, bniver, flucifre, gmeno, mbenjamin, mhackett, mrajanna, odf-bz-bot, sostapov, vereddy
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-asyncssh 2.14.1 Doc Type: ---
Doc Text:
A flaw was found in python-asyncssh before 2.14.1 versions, where the rogue extension negotiation process is unauthenticated and allows injecting an info message. This flaw allows an attacker to replace the original message, downgrading the algorithm used for client authentication, which affects the integrity of the message.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2265139, 2250327, 2250328, 2255433, 2299877, 2299878, 2299879, 2299880, 2299882, 2299883, 2299884, 2299885, 2299886    
Bug Blocks: 2250320    

Description Borja Tarraso 2023-11-17 18:22:15 UTC
An issue in AsyncSSH v2.14.0 and earlier allows attackers to control the extension info message (RFC 8308) via a man-in-the-middle attack.

The rogue extension negotiation attack targets an AsyncSSH client connecting to any SSH server sending an extension info message. The attack exploits an implementation flaw in the AsyncSSH implementation to inject an extension info message chosen by the attacker and delete the original extension info message, effectively replacing it.

A correct SSH implementation should not process an unauthenticated extension info message. However, the injected message is accepted due to flaws in AsyncSSH. AsyncSSH supports the server-sig-algs and global-requests-ok extensions. Hence, the attacker can downgrade the algorithm used for client authentication by meddling with the value of server-sig-algs (e.g. use of SHA-1 instead of SHA-2).

Comment 1 Borja Tarraso 2023-11-17 18:22:38 UTC
Created python-asyncssh tracking bugs for this issue:

Affects: epel-8 [bug 2250327]
Affects: fedora-all [bug 2250328]