🇰🇷 한글 설명
Linux 커널의 mediatek pinctrl 드라이버에서 모듈 언바인드 시 EINT 리소스가 제대로 해제되지 않는 취약점이 발견되었습니다. 이로 인해 사용되지 않는 IRQ 도메인과 잘못된 인터럽트 매핑이 남아 메모리 오류 및 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
기기 드라이버를 제거할 때 사용하던 자원을 깨끗이 치우지 않아, 컴퓨터 메모리에 찌꺼기가 남고 시스템이 오작동할 수 있는 문제입니다. 마치 사용이 끝난 도구를 정리하지 않고 방치하여 나중에 사고가 발생하는 것과 같습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pinctrl: mediatek: free EINT resources on unbind
mtk_eint_do_init() creates an IRQ domain, populates it with a mapping for
every EINT line and installs a chained handler on the parent interrupt,
but none of these are ever released. This was harmless while the drivers
were built-in, but now that they can be built as modules and
unbound/rmmod'd it leaves behind a dangling IRQ domain, interrupt mappings
whose chip data points at freed memory, and a chained handler that keeps
firing into that freed data.
The plain allocations in mtk_eint_do_init() already use the device-managed
devm_*() helpers, so tear the remaining resources down the same way:
register a devm action that detaches the chained handler, waits for any
in-flight handler to finish, disposes of the per-line mappings and removes
the IRQ domain. This mirrors the device-managed lifecycle adopted for the
GPIO chip and keeps the whole EINT setup self-cleaning on unbind.
📍 영향받는 시스템
MediaTek 칩셋을 사용하는 Linux 커널 (모듈형 드라이버 사용 시)
⚔️ 공격 벡터
직접적인 외부 공격보다는 드라이버 언바인드 과정에서 발생하는 메모리 오염 및 시스템 크래시 유발
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 MediaTek EINT 리소스 해제 패치가 적용된 최신 버전인지 확인