🔍 CVE-2024-42090

5.5
CVSS Score
MEDIUM
2024-07-29
2026-10-15 01:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 pinctrl 드라이버에서 create_pinctrl() 함수가 pinctrl_maps_mutex를 보유한 상태로 add_setting()을 호출할 때, -EPROBE_DEFER 오류 발생 시 pinctrl_free()를 호출하는데, 이 함수도 동일한 mutex를 획득하려 하여 deadlock이 발생합니다. 이는 pinctrl_free() 호출 전 mutex를 해제하여 해결됩니다.

💡 쉬운 설명

리눅스 시스템의 핀 제어 기능 초기화 중 작업을 미룰 때, 시스템이 같은 자원을 두 번 잠그려고 해서 멈추는 문제입니다. 잠금 순서를 바꾸면 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER In create_pinctrl(), pinctrl_maps_mutex is acquired before calling add_setting(). If add_setting() returns -EPROBE_DEFER, create_pinctrl() calls pinctrl_free(). However, pinctrl_free() attempts to acquire pinctrl_maps_mutex, which is already held by create_pinctrl(), leading to a potential deadlock. This patch resolves the issue by releasing pinctrl_maps_mutex before calling pinctrl_free(), preventing the deadlock. This bug was discovered and resolved using Coverity Static Analysis Security Testing (SAST) by Synopsys, Inc.

📍 영향받는 시스템

Linux 커널 5.10 이상 (pinctrl 드라이버 포함된 모든 배포판)

⚔️ 공격 벡터

부팅 또는 드라이버 로드 중 하드웨어 프로브 지연 조건을 유발하여 deadlock 트리거

🛡️ 대응 방법

Linux 커널을 CVE-2024-42090 패치 적용 버전으로 업데이트 (5.15.165+, 6.1.98+, 6.6.39+, 6.9.9+ 이상)

🔧 검증 코드

커널 버전 확인 후 취약 버전 범위와 비교하고, 시스템 로그에서 pinctrl 관련 deadlock 메시지 유무 확인

Shell / Script
uname -r; dmesg | grep -i 'pinctrl\|deadlock' | tail -5

📊 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