🇰🇷 한글 설명
Linux 커널의 ECC(타원곡선 암호) 모듈 내 vli 곱셈 연산에서 캐리 오버플로(carry overflow) 오류가 발견되었습니다. r01.m_high 값이 최대치일 때 하위 비트의 덧셈으로 인한 캐리를 제대로 처리하지 못해 계산 오류가 발생할 수 있습니다.
💡 쉬운 설명
암호 계산을 할 때 숫자가 너무 커지면 다음 자리로 넘겨줘야 하는 '올림수'를 놓치는 버그입니다. 이로 인해 암호화 계산 결과가 틀려질 수 있어 보안에 취약할 수 있습니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Linux kernel (crypto/ecc.c 관련 모듈 사용 시스템)
⚔️ 공격 벡터
특정 암호화 연산 과정에서 조작된 값을 입력하여 계산 오류를 유도하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인하십시오.