From f3d69e6dc7f70ed95793cad2b9e556a50c90f2c9 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 10 Apr 2026 15:25:13 +0100 Subject: [PATCH] Add missing check in mysqlnd_auth.c --- ext/mysqlnd/mysqlnd_auth.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/mysqlnd/mysqlnd_auth.c b/ext/mysqlnd/mysqlnd_auth.c index ea9755c982ed..9d0954bcbb97 100644 --- a/ext/mysqlnd/mysqlnd_auth.c +++ b/ext/mysqlnd/mysqlnd_auth.c @@ -920,6 +920,13 @@ mysqlnd_sha256_auth_get_auth_data(struct st_mysqlnd_authentication_plugin * self ret[passwd_len] = '\0'; } else { *auth_data_len = 0; + + if (auth_plugin_data_len < SCRAMBLE_LENGTH) { + SET_CLIENT_ERROR(conn->error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "The server sent wrong length for scramble"); + DBG_ERR_FMT("The server sent wrong length for scramble %zu. Expected %u", auth_plugin_data_len, SCRAMBLE_LENGTH); + DBG_RETURN(NULL); + } + server_public_key = mysqlnd_sha256_get_rsa_key(conn, session_options, pfc_data); if (server_public_key) {