CVE-2024-53178 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 27.

리눅스 커널 패닉 또는 Oops 로그를 분석한 결과입니다.

### **요약 결론** 이 오류는 **CIFS(SMB) 마운트된 파일 시스템을 언마운트(umount)하는 과정에서 발생한 커널 패닉**입니다. 구체적으로는 `shrink_dcache_for_umount` 함수에서 D-cache(디렉토리 캐시)를 정리하는 중 **NULL 포인터 참조(NULL Pointer Dereference)**가 발생했습니다.

---

### **상세 분석**

#### 1. **발생 위치 (RIP & Call Trace)** * **RIP (Instruction Pointer):** `0x7f23bfb93ae7` * 이는 사용자 공간(User Space)의 주소처럼 보이지만, 실제 커널 패닉은 아래 Call Trace에서 확인됩니다. * **Call Trace (호출 스택):** 1. `entry_SYSCALL_64_after_hwframe`: 시스템 콜 진입 2. `do_syscall_64`: 시스템 콜 처리 3. `syscall_exit_to_user_mode`: 시스템 콜 종료 후 사용자 모드로 복귀 4. `task_work_run`: 태스크 작업 처리 (여기서 `cleanup_mnt`가 호출됨) 5. `cleanup_mnt`: 마운트 포인트 정리 6. `deactivate_locked_super`: 슈퍼블록 비활성화 7. `cifs_kill_sb`: **CIFS 파일 시스템의 슈퍼블록 제거 함수** (여기서 CIFS 관련 오류 시작) 8. `kill_anon_super`: 익명 슈퍼블록 제거 9. `generic_shutdown_super`: 일반 슈퍼블록 종료 10. `shrink_dcache_for_umount`: **언마운트 시 디렉토리 캐시 수축** 11. **`d_walk+0x6a/0x530`**: **패닉 발생 지점** - D-cache 노드를 순회하는 중 오류 발생

#### 2. **에러 코드 분석** * **RAX: `0x0000000000000000`** * RAX 레지스터가 0입니다. 이는 일반적으로 **NULL 포인터**를 의미합니다. * **RIP: `0x7f23bfb93ae7`** * 실제 커널 코드 주소가 아닌 것처럼 보이지만, 이는 `d_walk` 함수 내부에서 NULL 포인터를 역참조하려고 시도했을 때 발생합니다. * **Call Trace의 `d_walk+0x6a`**: * `d_walk` 함수는 D-cache(디렉토리 엔트리 캐시) 트리를 순회합니다. * 이 함수 내에서 NULL 포인터를 참조하려고 했으므로, **D-cache 트리의 무결성이 깨졌거나, 유효하지 않은 노드를 참조**한 것으로 보입니다.

#### 3. **원인 추론** 1. **CIFS 드라이버 버그**: `cifs_kill_sb` 함수가 슈퍼블록을 제거하는 과정에서 D-cache 구조체에 잘못된 상태나 NULL 포인터를 남겼을 가능성이 높습니다. 2. **경쟁 조건(Race Condition)**: 언마운트 작업 중 다른 스레드가 D-cache를 수정하거나 해제하려고 했을 때, 동기화 문제가 발생했을 수 있습니다. 3. **커널 버전 문제**: 이 오류는 특정 커널 버전에서 알려진 CIFS 관련 버그일 수 있습니다. 특히 `shrink_dcache_for_umount`와 `d_walk` 관련 버그는 과거 여러 커널 버전에서 보고된 바 있습니다.

---

### **해결 방안**

#### 1. **즉시 조치** * **시스템 재부팅**: 현재 시스템이 패닉 상태이므로 재부팅이 필요합니다. * **CIFS 마운트 확인**: 언마운트 실패 시 강제로 언마운트(`umount -f`)하기 전에, 먼저 `lsof` 또는 `fuser` 명령어로 해당 마운트 포인트를 사용하는 프로세스를 확인하고 종료한 후 언마운트하세요.

#### 2. **장기적 해결** 1. **커널 업데이트**: * 사용 중인 커널 버전이 오래되었다면, 최신 안정 버전으로 업데이트하세요. CIFS 관련 D-cache 버그는 여러 커널 버전에서 패치되었습니다. * 예: `sudo apt update && sudo apt upgrade linux-image` (Debian/Ubuntu 기준)

2. **CIFS 드라이버 옵션 변경**: * `/etc/fstab`

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Linux

예약하다

2024. 11. 19.

모더레이션

수락

항목

VDB-289406

EPSS

0.00009

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!