[RFC PATCH 3/8] KEYS: Reject @desclen values over U16_MAX in key_alloc()

From: Jarkko Sakkinen

Date: Mon Oct 19 2026 - 11:49:03 EST


@desclen in key_alloc() is saved to the 16-bit wide desc_len field in
struct keyring_index_key.

Reject @desclen values over U16_MAX with -EINVAL in order to prevent
integer overflow.

Cc: stable@xxxxxxxxxxxxxxx
Assisted-by: LLM
Fixes: f771fde82051 ("keys: Simplify key description management")
Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
---
security/keys/key.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/security/keys/key.c b/security/keys/key.c
index 6ebb8691551f..7888c0c6a772 100644
--- a/security/keys/key.c
+++ b/security/keys/key.c
@@ -245,6 +245,8 @@ struct key *key_alloc(struct key_type *type, const char *desc,
}

desclen = strlen(desc);
+ if (desclen > U16_MAX)
+ goto error;
quotalen = desclen + 1 + type->def_datalen;

/* get hold of the key tracking for this user */
--
2.47.3