From 451afac626648a4aa534f1dec0f318231dfd8874 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 21 Jun 2026 14:50:25 +0200 Subject: lib: Wipe unpacked session key after copy Zeroize the symmetric key in the unpacked IRM message once it has been copied into the crypt context, in both flow__irm_result_des and flow_rekey__irm_result_des, so key material does not linger in the protobuf buffer until it is freed. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/serdes-irm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/lib/serdes-irm.c b/src/lib/serdes-irm.c index 74ca694c..1d9b4dec 100644 --- a/src/lib/serdes-irm.c +++ b/src/lib/serdes-irm.c @@ -176,6 +176,9 @@ int flow__irm_result_des(buffer_t * buf, sk->epoch = msg->has_generation ? (uint8_t) msg->generation : 0; + if (msg->sym_key.len == SYMMKEYSZ) + crypt_secure_clear(msg->sym_key.data, msg->sym_key.len); + irm_msg__free_unpacked(msg, NULL); return 0; @@ -216,6 +219,7 @@ int flow_rekey__irm_result_des(buffer_t * buf, sk->epoch = msg->has_generation ? (uint8_t) msg->generation : 0; *initiator = msg->has_rk_initiator && msg->rk_initiator; + crypt_secure_clear(msg->sym_key.data, msg->sym_key.len); } irm_msg__free_unpacked(msg, NULL); -- cgit v1.2.3