Commit 74d9391e authored by Daniel Hodges's avatar Daniel Hodges Committed by Jakub Kicinski
Browse files

tipc: use kfree_sensitive() for session key material



The rx->skey field contains a struct tipc_aead_key with GCM-AES
encryption keys used for TIPC cluster communication. Using plain
kfree() leaves this sensitive key material in freed memory pages
where it could potentially be recovered.

Switch to kfree_sensitive() to ensure the key material is zeroed
before the memory is freed.

Fixes: 1ef6f7c9 ("tipc: add automatic session key exchange")
Signed-off-by: default avatarDaniel Hodges <hodgesd@meta.com>
Link: https://patch.msgid.link/20260131180114.2121438-1-hodgesd@meta.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent dbbec8c5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1219,7 +1219,7 @@ void tipc_crypto_key_flush(struct tipc_crypto *c)
		rx = c;
		tx = tipc_net(rx->net)->crypto_tx;
		if (cancel_delayed_work(&rx->work)) {
			kfree(rx->skey);
			kfree_sensitive(rx->skey);
			rx->skey = NULL;
			atomic_xchg(&rx->key_distr, 0);
			tipc_node_put(rx->node);
@@ -2394,7 +2394,7 @@ static void tipc_crypto_work_rx(struct work_struct *work)
			break;
		default:
			synchronize_rcu();
			kfree(rx->skey);
			kfree_sensitive(rx->skey);
			rx->skey = NULL;
			break;
		}