macsec: clear encryption keys from the stack after setting up offload
[ Upstream commitaaab73f8fb] macsec_add_rxsa and macsec_add_txsa copy the key to an on-stack offloading context to pass it to the drivers, but leaves it there when it's done. Clear it with memzero_explicit as soon as it's not needed anymore. Fixes:3cf3227a21("net: macsec: hardware offloading infrastructure") Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Reviewed-by: Antoine Tenart <atenart@kernel.org> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9dc7503bae
commit
adaa0f180d
@@ -1824,6 +1824,7 @@ static int macsec_add_rxsa(struct sk_buff *skb, struct genl_info *info)
|
|||||||
secy->key_len);
|
secy->key_len);
|
||||||
|
|
||||||
err = macsec_offload(ops->mdo_add_rxsa, &ctx);
|
err = macsec_offload(ops->mdo_add_rxsa, &ctx);
|
||||||
|
memzero_explicit(ctx.sa.key, secy->key_len);
|
||||||
if (err)
|
if (err)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@@ -2066,6 +2067,7 @@ static int macsec_add_txsa(struct sk_buff *skb, struct genl_info *info)
|
|||||||
secy->key_len);
|
secy->key_len);
|
||||||
|
|
||||||
err = macsec_offload(ops->mdo_add_txsa, &ctx);
|
err = macsec_offload(ops->mdo_add_txsa, &ctx);
|
||||||
|
memzero_explicit(ctx.sa.key, secy->key_len);
|
||||||
if (err)
|
if (err)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user