High · published July 25, 2026
In the Linux kernel, the following vulnerability has been resolved:
crypto: ecc - Fix carry overflow in vli multiplication
The carry flag calculation fails when r01.m_high is saturated
(0xFFFFFFFFFFFFFFFF) and addition of lower bits overflows.
The condition (r01.m_high < product.m_high) doesn't handle the case
where r01.m_high == product.m_high and an additional carry exists
from lower-bit overflow.
When commit 3c4b23901a0c ("crypto: ecdh - Add ECDH software support")
introduced crypto/ecc.c, it split the muladd() function in the
micro-ecc library into separate mul_64_64() and add_128_128() helpers.
It seems the check got lost in translation.
Add proper handling for this boundary by accounting for the carry
from the lower addition.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 4.8, < 5.10.261 | 5.10.261 |
| linux/linux_kernel | ≥ 5.11, < 5.15.212 | 5.15.212 |
| linux/linux_kernel | ≥ 5.16, < 6.1.178 | 6.1.178 |
| linux/linux_kernel | ≥ 6.2, < 6.6.145 | 6.6.145 |
| linux/linux_kernel | ≥ 6.7, < 6.12.96 | 6.12.96 |
| linux/linux_kernel | ≥ 6.13, < 6.18.39 | 6.18.39 |
| linux/linux_kernel | ≥ 6.19, < 7.1.4 | 7.1.4 |