🇰🇷 한글 설명
Linux 커널에서 OPP(Operating Performance Points) 테이블의 대역폭(bandwidth) 테이블이 초기화되지 않은 상태에서 dev_pm_opp_find_bw_* 함수를 호출할 경우 NULL 포인터 역참조로 인해 커널 패닉이 발생할 수 있는 취약점입니다. 이 문제는 인터커넥트 속성이 누락된 OPP 소비자 노드에서 발생하며, 대역폭 테이블 생성 여부를 확인하는 검증 로직을 추가하여 해결되었습니다.
💡 쉬운 설명
시스템의 성능을 조절하는 기능이 준비되지 않은 상태에서 갑자기 작동을 요청하면 컴퓨터의 핵심인 커널이 충돌하여 멈춰버리는 문제입니다. 특정 설정이 빠져 있을 때 발생하는 오류로, 시스템이 갑자기 꺼지거나 재부팅될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized
If a driver calls dev_pm_opp_find_bw_ceil/floor() the retrieve bandwidth
from the OPP table but the bandwidth table was not created because the
interconnect properties were missing in the OPP consumer node, the
kernel will crash with:
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
...
pc : _read_bw+0x8/0x10
lr : _opp_table_find_key+0x9c/0x174
...
Call trace:
_read_bw+0x8/0x10 (P)
_opp_table_find_key+0x9c/0x174 (L)
_find_key+0x98/0x168
dev_pm_opp_find_bw_ceil+0x50/0x88
...
In order to fix the crash, create an assert function to check
if the bandwidth table was created before trying to get a
bandwidth with _read_bw().
📍 영향받는 시스템
Linux Kernel (OPP 테이블 및 인터커넥트 속성이 누락된 특정 드라이버 환경)
⚔️ 공격 벡터
로컬 공격자가 특정 드라이버를 호출하거나 잘못된 하드웨어 설정을 유도하여 커널 패닉(DoS)을 일으킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 대역폭 테이블 유효성 검사 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.