🇰🇷 한글 설명
Linux 커널의 EROFS 파일 시스템 내 LZ4 인플레이스 압축 해제 과정에서 부호 없는 정수 언더플로우 취약점이 발견되었습니다. 조작된 이미지를 사용하여 특정 조건에서 메모리 접근 범위를 벗어나는 읽기 오류가 발생할 수 있습니다.
💡 쉬운 설명
특수하게 제작된 파일을 컴퓨터에 연결하면, 시스템이 파일을 읽는 과정에서 메모리의 잘못된 영역을 건드려 오류를 일으킬 수 있습니다. 이는 시스템의 안정성을 해치거나 보안 문제를 일으킬 수 있는 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
erofs: fix unsigned underflow in z_erofs_lz4_handle_overlap()
Some crafted images can have illegal (!partial_decoding &&
m_llen < m_plen) extents, and the LZ4 inplace decompression path
can be wrongly hit, but it cannot handle (outpages < inpages)
properly: "outpages - inpages" wraps to a large value and
the subsequent rq->out[] access reads past the decompressed_pages
array.
However, such crafted cases can correctly result in a corruption
report in the normal LZ4 non-inplace path.
Let's add an additional check to fix this for backporting.
Reproducible image (base64-encoded gzipped blob):
H4sIAJGR12kCA+3SPUoDQRgG4MkmkkZk8QRbRFIIi9hbpEjrHQI5ghfwCN5BLCzTGtLbBI+g
dilSJo1CnIm7GEXFxhT6PDDwfrs73/ywIQD/1ePD4r7Ou6ETsrq4mu7XcWfj++Pb58nJU/9i
PNtbjhan04/9GtX4qVYc814WDqt6FaX5s+ZwXXeq52lndT6IuVvlblytLMvh4Gzwaf90nsvz
2DF/21+20T/ldgp5s1jXRaN4t/8izsy/OUB6e/Qa79r+JwAAAAAAAL52vQVuGQAAAP6+my1w
ywAAAAAAAADwu14ATsEYtgBQAAA=
$ mount -t erofs -o cache_strategy=disabled foo.erofs /mnt
$ dd if=/mnt/data of=/dev/null bs=4096 count=1
📍 영향받는 시스템
Linux kernel (EROFS 파일 시스템 사용 시)
⚔️ 공격 벡터
조작된 EROFS 이미지 파일을 시스템에 마운트하여 공격 수행
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전인지 확인