From 4221bd151cba2244d28039c12365a64f8ab680b1 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Tue, 11 May 2021 23:36:31 +0200 Subject: [PATCH] Fixed unterminated salt buffer in -m 23400 module_hash_encode() in case salt was of length 256 --- docs/changes.txt | 1 + src/modules/module_23400.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 1da0dc692..29c182201 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -68,6 +68,7 @@ - Fixed unexpected non-unique salts in multi-hash cracking in Bitcoin/Litecoin wallet.dat module which led to false negatives - Fixed unit test for -m 3000 by preventing it to generate zero hashes - Fixed unit tests using 'null' as padding method in Crypt::CBC but actually want to use 'none' +- Fixed unterminated salt buffer in -m 23400 module_hash_encode() in case salt was of length 256 - Fixed vector datatype support in -m 21100 only -P mode and only -a 3 mode were affected ## diff --git a/src/modules/module_23400.c b/src/modules/module_23400.c index ff45419f1..4ba636bfa 100644 --- a/src/modules/module_23400.c +++ b/src/modules/module_23400.c @@ -201,11 +201,11 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE // salt_buf - #define SALT_LEN_BASE64 ((SALT_MAX * 8) / 6) + 3 + u8 salt_buf[SALT_MAX * 2]; - u8 salt_buf[SALT_LEN_BASE64] = { 0 }; + const int salt_len = base64_encode (int_to_base64, (const u8 *) salt->salt_buf, (const int) salt->salt_len, salt_buf); - base64_encode (int_to_base64, (const u8 *) salt->salt_buf, (const int) salt->salt_len, salt_buf); + salt_buf[salt_len] = 0; // hash_buf