[PATCH 07/14] vhost/crypto: catch incorrect request length
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Oct 14 17:00:42 CEST 2026
From: David Marchand <david.marchand at redhat.com>
Incorrect lengths expressed as 32 bit unsigned integers in the crypto
operation request could go unnoticed as those were summed in a too
narrow 32 bit unsigned integer.
This issue was not fixed by the previous fixes (under CVE-2020-14376
and CVE-2020-14378).
CVE-2026-86849
Bugzilla ID: 2022
Fixes: 3bb595ecd682 ("vhost/crypto: add request handler")
Cc: stable at dpdk.org
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
Signed-off-by: David Marchand <david.marchand at redhat.com>
---
lib/vhost/vhost_crypto.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index 351fa241c8..bba2e1c0a6 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -1182,11 +1182,11 @@ vhost_crypto_check_chain_request(struct virtio_crypto_alg_chain_data_req *req)
(req->para.hash_start_src_offset <
VHOST_CRYPTO_MAX_DATA_SIZE) &&
(req->para.len_to_hash <= VHOST_CRYPTO_MAX_DATA_SIZE) &&
- (req->para.cipher_start_src_offset + req->para.len_to_cipher <=
+ ((uint64_t)req->para.cipher_start_src_offset + req->para.len_to_cipher <=
req->para.src_data_len) &&
- (req->para.hash_start_src_offset + req->para.len_to_hash <=
+ ((uint64_t)req->para.hash_start_src_offset + req->para.len_to_hash <=
req->para.src_data_len) &&
- (req->para.dst_data_len + req->para.hash_result_len <=
+ ((uint64_t)req->para.dst_data_len + req->para.hash_result_len <=
VHOST_CRYPTO_MAX_DATA_SIZE)))
return VIRTIO_CRYPTO_OK;
return VIRTIO_CRYPTO_BADMSG;
--
2.56.0
More information about the dev
mailing list