mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-10 10:26:47 +09:00
CVE-2025-8277: packet: Adjust packet filter to work when DH-GEX is guessed wrongly
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
@@ -294,6 +294,7 @@ static enum ssh_packet_filter_result_e ssh_packet_incoming_filter(ssh_session se
|
|||||||
* or session_state == SSH_SESSION_STATE_INITIAL_KEX
|
* or session_state == SSH_SESSION_STATE_INITIAL_KEX
|
||||||
* - dh_handshake_state == DH_STATE_INIT
|
* - dh_handshake_state == DH_STATE_INIT
|
||||||
* or dh_handshake_state == DH_STATE_INIT_SENT (re-exchange)
|
* or dh_handshake_state == DH_STATE_INIT_SENT (re-exchange)
|
||||||
|
* or dh_handshake_state == DH_STATE_REQUEST_SENT (dh-gex)
|
||||||
* or dh_handshake_state == DH_STATE_FINISHED (re-exchange)
|
* or dh_handshake_state == DH_STATE_FINISHED (re-exchange)
|
||||||
*
|
*
|
||||||
* Transitions:
|
* Transitions:
|
||||||
@@ -313,6 +314,7 @@ static enum ssh_packet_filter_result_e ssh_packet_incoming_filter(ssh_session se
|
|||||||
|
|
||||||
if ((session->dh_handshake_state != DH_STATE_INIT) &&
|
if ((session->dh_handshake_state != DH_STATE_INIT) &&
|
||||||
(session->dh_handshake_state != DH_STATE_INIT_SENT) &&
|
(session->dh_handshake_state != DH_STATE_INIT_SENT) &&
|
||||||
|
(session->dh_handshake_state != DH_STATE_REQUEST_SENT) &&
|
||||||
(session->dh_handshake_state != DH_STATE_FINISHED))
|
(session->dh_handshake_state != DH_STATE_FINISHED))
|
||||||
{
|
{
|
||||||
rc = SSH_PACKET_DENIED;
|
rc = SSH_PACKET_DENIED;
|
||||||
|
|||||||
Reference in New Issue
Block a user