🇰🇷 한글 설명
리눅스 커널의 pm8916_lbc 전원 공급 드라이버에서 인터럽트 핸들러 내 extcon 핸들 사용 후 자유(UAF) 취약점이 발견되었습니다. 이는 리소스 할당 및 해제 순서 불일치로 인해 인터럽트 발생 시 이미 해제된 메모리에 접근하여 시스템 충돌이나 메모리 손상을 유발합니다.
💡 쉬운 설명
시스템이 종료되거나 재부팅될 때, 하드웨어 연결 상태를 확인하는 과정에서 이미 사라진 메모리 영역을 잘못 접근하는 오류입니다. 이로 인해 컴퓨터가 갑자기 멈추거나 데이터가 손상될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
power: supply: pm8916_lbc: Fix use-after-free for extcon in IRQ handler
Using the `devm_` variant for requesting IRQ _before_ the `devm_`
variant for allocating/registering the `extcon` handle, means that the
`extcon` handle will be deallocated/unregistered _before_ the interrupt
handler (since `devm_` naturally deallocates in reverse allocation
order). This means that during removal, there is a race condition where
an interrupt can fire just _after_ the `extcon` handle has been
freed, *but* just _before_ the corresponding unregistration of the IRQ
handler has run.
This will lead to the IRQ handler calling `extcon_set_state_sync()` with
a freed `extcon` handle. Which usually crashes the system or otherwise
silently corrupts the memory...
Fix this racy use-after-free by making sure the IRQ is requested _after_
the registration of the `extcon` handle.
📍 영향받는 시스템
Linux kernel (pm8916_lbc driver 포함 버전)
⚔️ 공격 벡터
시스템 제거 또는 재부팅 과정에서의 타이밍 경쟁 조건을 통한 메모리 손상
🛡️ 대응 방법
커널 패치 적용을 통해 extcon 핸들 등록 후 IRQ 요청 순서를 수정하여 UAF 발생을 방지
🔧 검증 코드
출력된 커널 버전이 취약한 pm8916_lbc 드라이버를 포함하는 버전인지 확인하고, 해당 드라이버가 로드되어 있는지 lsmod로 점검