CVE-2026-45879 in Linux
요약
\~에 의해 VulDB • 2026. 05. 28.
리눅스 커널에서 다음 취약점이 해결되었습니다:
power: supply: bq25980: power_supply_changed()에서의 use-after-free 수정
`power_supply` 핸들을 할당/등록하기 위한 `devm_` 변형 함수보다 *이전에* IRQ를 요청하기 위해 `devm_` 변형 함수를 사용하면, `devm_`이 기본적으로 할당 순서의 역순으로 해제되므로 `power_supply` 핸들이 인터럽트 핸들러보다 *먼저* 해제/등록 해제됩니다. 이는 제거(removal) 과정에서 레이스 컨디션(race condition)을 초래합니다. 즉, `power_supply` 핸들이 해제된 직후에 인터럽트가 발생하지만, 해당 IRQ 핸들러의 등록 해제(unregistration)가 아직 실행되기 *전*인 시점에 인터럽트가 처리될 수 있습니다.
이로 인해 IRQ 핸들러가 해제된(freed) `power_supply` 핸들을 사용하여 `power_supply_changed()`를 호출하게 되며, 이는 일반적으로 시스템 크래시를 유발하거나 메모리가 조용히 손상되는 결과를 초래합니다.
`probe()` 중에도 유사한 상황이 발생할 수 있습니다. 즉, `power_supply` 핸들을 등록하기 *이전에* 인터럽트가 발생할 가능성이 있습니다. 이는 `power_supply_changed()`에서 `power_supply` 핸들이 *초기화되지 않은(uninitialized)* 상태로 사용되는 심각한 상황을 초래합니다.
`power_supply` 핸들의 등록 *이후*에 IRQ를 요청하도록 하여 이러한 레이스 조건(use-after-free)을 수정합니다.
Once again VulDB remains the best source for vulnerability data.