🇰🇷 한글 설명
리눅스 커널의 regulator 코어에서 초기화 완료 작업이 비동기식 워크큐(system_wq)를 사용하여 시스템 절전 모드 진입 시 경합 조건이 발생할 수 있습니다. 이로 인해 I2C 어댑터가 이미 중단된 상태에서 I2C 전송을 시도하여 -ESHUTDOWN 경고가 발생할 수 있는 취약점입니다.
💡 쉬운 설명
컴퓨터가 잠자기 모드로 들어갈 때, 전원을 조절하는 작업이 너무 늦게 실행되어 이미 꺼진 장치에 명령을 내리려다 오류가 발생하는 문제입니다. 시스템이 잠들기 전에 해당 작업이 먼저 안전하게 마무리되도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
regulator: core: use system_freezable_wq for init complete work
schedule_delayed_work() uses system_wq, which is non-freezable, allowing
regulator_init_complete_work to run concurrently with system suspend. This
work fires ~30s after boot to disable unused regulators via I2C. When it
races with PM suspend, the I2C adapter may already be suspended, triggering
a -ESHUTDOWN warning in __i2c_transfer():
WARNING: ... at __i2c_transfer+0x36c/0x3c8
Call trace:
__i2c_transfer
i2c_transfer
regmap_i2c_write
_regmap_update_bits
regulator_disable_regmap
_regulator_do_disable
regulator_late_cleanup
regulator_init_complete_work_function
process_one_work
Switch to system_freezable_wq so the work is frozen before any device
is suspended, eliminating the race.
📍 영향받는 시스템
Linux Kernel (regulator core 관련 모듈 사용 시스템)
⚔️ 공격 벡터
로컬 시스템의 전원 관리(Suspend) 동작을 유도하여 경합 조건을 발생시킴 (직접적인 원격 공격 불가)
🛡️ 대응 방법
system_wq 대신 system_freezable_wq를 사용하도록 패치된 최신 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포판 보안 공지를 통해 확인