[PATCH v2 0/5] smb: server: Clear sensitive data before freeing it
From: Thomas Huth
Date: Tue Aug 11 2026 - 11:54:37 EST
Sensitive data like keys that are stored in stack-local arrays could be
leaked via the stack to the calling functions, or via the heap when using
only normal kfree() functions.
It's good security practice to clear sensitive data on the stack first
with memzero_explicit() before leaving the context, and to use
kfree_sensitive() for data that is returned to the heap.
Disclaimer: The spots that need clearing have been identified with AI,
but the patches have been created manually (for double-checking whether
the findings really make sense). Anyway, I'm not very familiar with the
smb code, so please review carefully. Thanks!
v2:
- Calculate proper size for the kvfree_sensitive() in the first patch
- Add "kfree_sensitive(target)" hunk to the connection.c patch
- Add patch to clear Preauth_HashValue in smb2pdu.c
Thomas Huth (5):
smb: server: Clear sensitive stack and heap data in auth.c
smb: server: Make sure that passkey is not leaked on the heap in
user_config.c
smb: server: Free session data in user_session.c with
kfree_sensitive()
smb: server: Free sensitive data in connection.c with
kfree_sensitive()
smb: server: Clear Preauth_HashValue in smb2pdu.c with
kfree_sensitive()
fs/smb/server/auth.c | 12 ++++++++++--
fs/smb/server/connection.c | 6 +++---
fs/smb/server/mgmt/user_config.c | 6 +++---
fs/smb/server/mgmt/user_session.c | 4 ++--
fs/smb/server/smb2pdu.c | 4 ++--
5 files changed, 20 insertions(+), 12 deletions(-)
--
2.55.0