Recheck-request: iol-unit-arm64-testing
On 13/10/2026 14:35, Jack Bond-Preston wrote:
Validate that the provided rte_crypto_auth_xform's key length is not
too large, and that the provided data pointer is not NULL.
Previously, providing a key which has a size > SHA_BLOCK_MAX will cause
the key memcpy to write out of bounds. Since the rte_crypto_auth_xform
documentation states that it is the user's responsibility to validate
the authentication key length, this is not a bug in DPDK. However,
other PMDs are validating this, and it is more user-friendly to do so -
with negligible performance impact.
Reported-by: pengpeng <[email protected]>
Signed-off-by: Jack Bond-Preston <[email protected]>
Reviewed-by: Wathsala Vithanage <[email protected]>
---
drivers/crypto/armv8/rte_armv8_pmd.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c
b/drivers/crypto/armv8/rte_armv8_pmd.c
index a7caac186d..f4ddfb6395 100644
--- a/drivers/crypto/armv8/rte_armv8_pmd.c
+++ b/drivers/crypto/armv8/rte_armv8_pmd.c
@@ -262,6 +262,13 @@ auth_set_prerequisites(struct armv8_crypto_session *sess,
uint8_t partial[64] = { 0 };
int error;
+ /* Validate key */
+ if (xform->auth.key.data == NULL ||
+ xform->auth.key.length > SHA_BLOCK_MAX) {
+ ARMV8_CRYPTO_LOG_ERR("Invalid authentication key provided.");
+ return -1;
+ }
+
switch (xform->auth.algo) {
case RTE_CRYPTO_AUTH_SHA1_HMAC:
/*