🇰🇷 한글 설명
Linux 커널의 EROFS 파일 시스템 내 z_erofs_get_gbuf() 함수에서 레이스 컨디션(Race Condition) 취약점이 발견되었습니다. 작업 프로세스가 ID를 가져온 후 스핀락을 획득하기 전 CPU가 변경될 경우, z_erofs_put_gbuf() 호출 시 커널 버그가 발생하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 처리하는 과정에서 순서가 꼬여 발생하는 오류입니다. 특정 상황에서 시스템이 예상치 못한 동작을 하거나 멈출 수 있는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
erofs: fix race in z_erofs_get_gbuf()
In z_erofs_get_gbuf(), the current task may be migrated to another
CPU between `z_erofs_gbuf_id()` and `spin_lock(&gbuf->lock)`.
Therefore, z_erofs_put_gbuf() will trigger the following issue
which was found by stress test:
<2>[772156.434168] kernel BUG at fs/erofs/zutil.c:58!
..
<4>[772156.435007]
<4>[772156.439237] CPU: 0 PID: 3078 Comm: stress Kdump: loaded Tainted: G E 6.10.0-rc7+ #2
<4>[772156.439239] Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS 1.0.0 01/01/2017
<4>[772156.439241] pstate: 83400005 (Nzcv daif +PAN -UAO +TCO +DIT -SSBS BTYPE=--)
<4>[772156.439243] pc : z_erofs_put_gbuf+0x64/0x70 [erofs]
<4>[772156.439252] lr : z_erofs_lz4_decompress+0x600/0x6a0 [erofs]
..
<6>[772156.445958] stress (3127): drop_caches: 1
<4>[772156.446120] Call trace:
<4>[772156.446121] z_erofs_put_gbuf+0x64/0x70 [erofs]
<4>[772156.446761] z_erofs_lz4_decompress+0x600/0x6a0 [erofs]
<4>[772156.446897] z_erofs_decompress_queue+0x740/0xa10 [erofs]
<4>[772156.447036] z_erofs_runqueue+0x428/0x8c0 [erofs]
<4>[772156.447160] z_erofs_readahead+0x224/0x390 [erofs]
..
📍 영향받는 시스템
Linux kernel (EROFS 파일 시스템을 사용하는 환경, 특히 6.10.0-rc7+ 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 EROFS 파일 시스템을 마운트하거나 관련 시스템 호출을 유도하여 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인하십시오.