summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2026-05-05 17:02:45 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2026-05-15 18:08:37 +0800
commite4c06479d7059888adf2f22bc1ebcf053bf691a2 (patch)
tree98011d210df843be07d1f0832f8d404803e62f13 /crypto
parentffdd2bc378953b525aca61902534e753f1f8e734 (diff)
downloadlwn-e4c06479d7059888adf2f22bc1ebcf053bf691a2.tar.gz
lwn-e4c06479d7059888adf2f22bc1ebcf053bf691a2.zip
crypto: af_alg - Cap AEAD AD length to 0x80000000
In order to prevent arithmetic overflows when checking the TX buffer size, cap the associated data length to 0x80000000. Reported-by: Yiming Qian <yimingqian591@gmail.com> Fixes: 400c40cf78da ("crypto: algif - add AEAD support") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/af_alg.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
index fce0b87c2b65..48c53f488e0f 100644
--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -584,6 +584,8 @@ static int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con)
if (cmsg->cmsg_len < CMSG_LEN(sizeof(u32)))
return -EINVAL;
con->aead_assoclen = *(u32 *)CMSG_DATA(cmsg);
+ if (con->aead_assoclen >= 0x80000000u)
+ return -EINVAL;
break;
default: