CVE-2021-47413 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 19.

리눅스 커널에서 다음 취약점이 해결되었습니다:

usb: chipidea: ci_hdrc_imx: 'phys' phandle도 검색하도록 수정

장치 트리(devicetree)에 USB PHY를 설명하기 위해 'phys'를 전달하는 경우(이는 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt에서 권장되는 방식임), i.MX7 및 i.MX8MM 시스템에서 다음과 같은 NULL 포인터 역참조(NULL pointer dereference)가 관찰됩니다:

[ 1.489344] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000098
[ 1.498170] Mem abort info:
[ 1.500966] ESR = 0x96000044
[ 1.504030] EC = 0x25: DABT (current EL), IL = 32 bits
[ 1.509356] SET = 0, FnV = 0
[ 1.512416] EA = 0, S1PTW = 0
[ 1.515569] FSC = 0x04: level 0 translation fault
[ 1.520458] Data abort info:
[ 1.523349] ISV = 0, ISS = 0x00000044
[ 1.527196] CM = 0, WnR = 1
[ 1.530176] [0000000000000098] user address but active_mm is swapper
[ 1.536544] Internal error: Oops: 96000044 [#1] PREEMPT SMP
[ 1.542125] Modules linked in:
[ 1.545190] CPU: 3 PID: 7 Comm: kworker/u8:0 Not tainted 5.14.0-dirty #3
[ 1.551901] Hardware name: Kontron i.MX8MM N801X S (DT)
[ 1.557133] Workqueue: events_unbound deferred_probe_work_func
[ 1.562984] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--)
[ 1.568998] pc : imx7d_charger_detection+0x3f0/0x510
[ 1.573973] lr : imx7d_charger_detection+0x22c/0x510

이 문제는 충전기(charger) 함수들이 phy의 존재 여부를 `imx_usbmisc_data` 구조체(data->usb_phy) 내부에서 확인하지만, chipidea 코어는 'phys'를 통해 전달된 usb_phy를 대신 `struct ci_hdrc`(ci->usb_phy)에 채우기 때문에 발생합니다.

이로 인해 `imx7d_charger_detection()` 내에서 NULL 포인터 역참조가 발생하게 됩니다.

`fsl,usbphy`를 찾지 못한 경우 'phys'도 검색하도록 수정하여 이 문제를 해결합니다.

imx7s-warp 보드에서 테스트되었습니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!