🇰🇷 한글 설명
Linux 커널의 LED trigger 시스템에서 sysfs 속성 제거와 리소스 해제 순서의 race condition 취약점입니다. device_remove_groups()가 deactivate() 이후에 호출되어 해제된 trigger-data에 대한 접근 윈도우가 생깁니다. 수정은 device_remove_groups()를 deactivate() 전에 호출하여 활성화 경로의 역순으로 처리합니다.
💡 쉬운 설명
LED 제어 기능이 꺼질 때 설정 인터페이스가 남아있어서 이미 정리된 메모리에 접근할 수 있는 문제입니다. 이를 악용하면 시스템 충돌이나 권한 상승이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
leds: trigger: Unregister sysfs attributes before calling deactivate()
Triggers which have trigger specific sysfs attributes typically store
related data in trigger-data allocated by the activate() callback and
freed by the deactivate() callback.
Calling device_remove_groups() after calling deactivate() leaves a window
where the sysfs attributes show/store functions could be called after
deactivation and then operate on the just freed trigger-data.
Move the device_remove_groups() call to before deactivate() to close
this race window.
This also makes the deactivation path properly do things in reverse order
of the activation path which calls the activate() callback before calling
device_add_groups().
📍 영향받는 시스템
Linux kernel (모든 LED trigger 기능을 사용하는 시스템)
⚔️ 공격 벡터
Local access via LED trigger sysfs attributes (/sys/class/leds/)
🛡️ 대응 방법
Linux 커널을 CVE-2024-43830 패치가 포함된 최신 버전으로 업그레이드
🔧 검증 코드
패치 적용 여부는 배포판별 보안 업데이트 확인 필요 (Ubuntu/Debian: apt update && apt list --upgradable | grep linux-image)
grep -r 'device_remove_groups.*deactivate' /sys/kernel/debug/ 2>/dev/null || uname -r | grep -E 'el[0-9]|ubuntu|debian'