🇰🇷 한글 설명
Linux 커널의 starfive 암호화 드라이버에서 sg_nents_for_len 함수의 반환값을 처리할 때 오류가 발생합니다. 음수 에러 코드가 부호 없는 정수(unsigned long)로 변환되어 매우 큰 양수로 처리됨으로써 잠재적인 버퍼 오버플로를 유발할 수 있는 취약점입니다.
💡 쉬운 설명
컴퓨터가 계산 오류를 알리는 '마이너스' 신호를 아주 큰 '플러스' 숫자로 잘못 읽어서 발생하는 문제입니다. 이로 인해 데이터가 정해진 공간을 넘쳐흘러 시스템이 망가질 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
crypto: starfive - Correctly handle return of sg_nents_for_len
The return value of sg_nents_for_len was assigned to an unsigned long
in starfive_hash_digest, causing negative error codes to be converted
to large positive integers.
Add error checking for sg_nents_for_len and return immediately on
failure to prevent potential buffer overflows.
📍 영향받는 시스템
StarFive 관련 하드웨어를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
암호화 처리 과정에서 조작된 입력값을 통해 에러 코드를 유도하여 버퍼 오버플로를 일으킴
🛡️ 대응 방법
sg_nents_for_len의 반환값에 대한 에러 체크 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인