From 8a8d8a62facf7e4d87ecd9044c455059c1e17fae Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 5 Feb 2026 23:12:08 +0100 Subject: [PATCH] secretbox: zero the state after checking only the tag --- src/libsodium/crypto_secretbox/crypto_secretbox_easy.c | 2 ++ .../xchacha20poly1305/secretbox_xchacha20poly1305.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c b/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c index e2ba6234..d3754883 100644 --- a/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c +++ b/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c @@ -99,6 +99,8 @@ crypto_secretbox_open_detached(unsigned char *m, const unsigned char *c, return -1; } if (m == NULL) { + sodium_memzero(subkey, sizeof subkey); + sodium_memzero(block0, sizeof block0); return 0; } ACQUIRE_FENCE; diff --git a/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c b/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c index aa1b5b4b..484a129f 100644 --- a/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c +++ b/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.c @@ -106,6 +106,8 @@ crypto_secretbox_xchacha20poly1305_open_detached(unsigned char *m, return -1; } if (m == NULL) { + sodium_memzero(subkey, sizeof subkey); + sodium_memzero(block0, sizeof block0); return 0; } ACQUIRE_FENCE;