🔍 CVE-2024-49889

7.8
CVSS Score
HIGH
2024-10-21
2026-10-15 01:18
✅ 완료

🇰🇷 한글 설명

Linux kernel의 ext4 파일시스템에서 ext4_find_extent() 함수가 경로를 해제하거나 재할당할 때, 이전에 저장된 포인터를 계속 사용하여 use-after-free 취약점이 발생합니다. EXT_DEBUG 디버그 플래그가 정의되었을 때만 트리거되어 일반 운영 환경의 기능에는 영향을 주지 않습니다.

💡 쉬운 설명

Linux 커널의 ext4 파일시스템에서 메모리 정리 후 같은 메모리 주소를 다시 사용하려고 할 때 오류가 발생할 수 있습니다. 이는 디버그 모드가 활성화된 경우에만 일어나므로 일반 사용자에게는 영향이 없습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ext4: avoid use-after-free in ext4_ext_show_leaf() In ext4_find_extent(), path may be freed by error or be reallocated, so using a previously saved *ppath may have been freed and thus may trigger use-after-free, as follows: ext4_split_extent path = *ppath; ext4_split_extent_at(ppath) path = ext4_find_extent(ppath) ext4_split_extent_at(ppath) // ext4_find_extent fails to free path // but zeroout succeeds ext4_ext_show_leaf(inode, path) eh = path[depth].p_hdr // path use-after-free !!! Similar to ext4_split_extent_at(), we use *ppath directly as an input to ext4_ext_show_leaf(). Fix a spelling error by the way. Same problem in ext4_ext_handle_unwritten_extents(). Since 'path' is only used in ext4_ext_show_leaf(), remove 'path' and use *ppath directly. This issue is triggered only when EXT_DEBUG is defined and therefore does not affect functionality.

📍 영향받는 시스템

Linux kernel의 ext4 파일시스템 (EXT_DEBUG 플래그가 활성화된 커널 빌드)

⚔️ 공격 벡터

EXT_DEBUG가 활성화된 커널에서 ext4 파일시스템 작업 중 특정 경로를 통한 메모리 손상 트리거

🛡️ 대응 방법

Linux kernel을 최신 버전으로 업데이트하여 ext4_ext_show_leaf() 함수의 포인터 처리 로직 패치 적용

🔧 검증 코드

커널 설정에서 EXT_DEBUG 플래그 활성화 여부를 확인합니다. EXT_DEBUG가 비활성화(# CONFIG_EXT_DEBUG is not set)되어 있으면 이 취약점의 영향을 받지 않습니다.

Shell / Script
cat /boot/config-$(uname -r) 2>/dev/null | grep -i ext_debug || echo 'Check kernel config for EXT_DEBUG flag'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel