🇰🇷 한글 설명
Linux 커널의 iomap 구성 요소에서 읽기 범위 조정 시 블록 정렬되지 않은 위치를 올바르게 처리하지 못하는 취약점이 발견되었습니다. 이로 인해 데이터 읽기 시 잘못된 위치와 길이를 반환하거나, 특정 조건에서 길이에 언더플로우가 발생하여 메모리 범위를 벗어난 위치를 참조할 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 읽을 때 위치를 계산하는 과정에서 실수하여, 원래 읽어야 할 곳보다 훨씬 뒤쪽의 잘못된 메모리 영역을 건드릴 수 있는 문제입니다. 이 오류를 이용하면 시스템의 중요한 데이터가 잘못 읽히거나 프로그램이 비정상적으로 작동할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
iomap: adjust read range correctly for non-block-aligned positions
iomap_adjust_read_range() assumes that the position and length passed in
are block-aligned. This is not always the case however, as shown in the
syzbot generated case for erofs. This causes too many bytes to be
skipped for uptodate blocks, which results in returning the incorrect
position and length to read in. If all the blocks are uptodate, this
underflows length and returns a position beyond the folio.
Fix the calculation to also take into account the block offset when
calculating how many bytes can be skipped for uptodate blocks.
📍 영향받는 시스템
Linux Kernel (iomap 및 erofs 관련 모듈 사용 시스템)
⚔️ 공격 벡터
정렬되지 않은 읽기 요청을 유도하여 메모리 언더플로우 및 잘못된 메모리 참조 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인합니다.