🔍 CVE-2024-38780

5.5
CVSS Score
MEDIUM
2024-06-21
2026-10-15 01:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 dma-buf/sw-sync 모듈에서 spin_unlock_irq() 함수 사용 오류로 인한 IRQ 상태 불일치 문제입니다. sync_print_obj() 함수에서 잘못된 스핀락 해제 호출이 lockdep 경고를 발생시키며, IRQ 활성화 상태 관리의 혼란을 초래합니다.

💡 쉬운 설명

리눅스 커널의 메모리 관리 코드에서 잘못된 잠금 해제 방식이 사용되어 시스템 경고가 발생합니다. 주로 커널 개발/디버깅 환경에서 문제가 나타나며 일반 사용자 보안에는 직접적 영향이 제한적입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: dma-buf/sw-sync: don't enable IRQ from sync_print_obj() Since commit a6aa8fca4d79 ("dma-buf/sw-sync: Reduce irqsave/irqrestore from known context") by error replaced spin_unlock_irqrestore() with spin_unlock_irq() for both sync_debugfs_show() and sync_print_obj() despite sync_print_obj() is called from sync_debugfs_show(), lockdep complains inconsistent lock state warning. Use plain spin_{lock,unlock}() for sync_print_obj(), for sync_debugfs_show() is already using spin_{lock,unlock}_irq().

📍 영향받는 시스템

Linux kernel 6.1 이상의 dma-buf/sw-sync 모듈이 포함된 시스템

⚔️ 공격 벡터

로컬 시스템 접근으로 debugfs를 통해 sync_debugfs_show() 함수 호출 시 lockdep 경고 트리거 가능

🛡️ 대응 방법

Linux 커널을 최신 패치가 적용된 버전으로 업데이트하거나 spin_lock/spin_unlock()을 올바르게 사용하는 코드 패치 적용

🔧 검증 코드

커널 버전 확인 후 dma-buf/sw-sync의 취약한 패턴이 있는지 검색합니다. 패턴이 없으면 패치가 적용된 상태입니다.

Shell / Script
cat /proc/version | grep -oP 'Linux version \K[0-9.]+' && grep -r 'spin_unlock_irq.*sync_print_obj' /usr/src/linux*/drivers/dma-buf/ 2>/dev/null || echo 'Not vulnerable'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel