🇰🇷 한글 설명
Linux 커널의 leds: an30259a 드라이버에서 뮤텍스 초기화에 devm_mutex_init()을 사용하도록 수정되었습니다. LED는 devm_led_classdev_register()로 등록되어 모듈의 remove() 이후에 자동 해제되는데, led_classdev_unregister()가 호출하는 밝기 설정 콜백이 이미 파괴된 뮤텍스를 사용하는 문제가 있었습니다.
💡 쉬운 설명
LED 제어 드라이버가 이미 정리된 잠금 장치를 다시 사용하려 해서 생기는 문제입니다. 커널이 자원을 관리하는 방식으로 잠금 장치를 초기화하도록 바꿔 해결했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
leds: an30259a: Use devm_mutex_init() for mutex initialization
In this driver LEDs are registered using devm_led_classdev_register()
so they are automatically unregistered after module's remove() is done.
led_classdev_unregister() calls module's led_set_brightness() to turn off
the LEDs and that callback uses mutex which was destroyed already
in module's remove() so use devm API instead.
📍 영향받는 시스템
패치 이전의 Linux 커널 중 an30259a LED 드라이버를 포함한 버전 (해당 드라이버를 사용하는 임베디드/노트북 장치)
⚔️ 공격 벡터
로컬 사용자가 드라이버 모듈의 제거 및 해제 과정에서 발생하는 use-after-free 상태를 유발할 수 있으며, 시스템 불안정이나 메모리 손상이 발생할 수 있습니다.
🛡️ 대응 방법
배포판에서 제공하는 커널 보안 업데이트를 적용하거나 커널을 해당 수정이 포함된 버전으로 업그레이드하고 재부팅합니다.
🔧 검증 코드
커널 버전이 수정이 포함된 최신 패치 버전인지 확인하고, an30259a 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.
uname -r && (lsmod | grep -i an30259a || echo 'an30259a module not loaded')