🔍 CVE-2026-53305

5.5
CVSS Score
MEDIUM
2026-06-26
2026-07-06 20:24
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ps883x USB Type-C 리타이머 드라이버에서 장치 해제(unbind) 시 NULL 포인터 역참조로 인한 커널 Oops 오류가 발생합니다. 이는 probe 단계에서 i2c_set_clientdata()가 호출되지 않아 발생하며, 장치 제거 시 드라이버 데이터를 제대로 가져오지 못해 시스템이 충돌합니다.

💡 쉬운 설명

USB 연결 장치를 소프트웨어적으로 분리하려고 할 때, 컴퓨터의 핵심 시스템(커널)이 잘못된 메모리 주소를 참조하여 갑자기 멈추거나 오류를 일으키는 문제입니다. 장치를 연결할 때 필요한 정보를 저장하지 않아서 발생하는 소프트웨어적 실수입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: typec: ps883x: Fix Oops at unbind When trying to unbind a device in order to bind to it vfio-platform as: echo bc0000.geniqup > /sys/bus/platform/devices/bc0000.geniqup/driver/unbind I get the following Oops: [ 436.478639] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020 [ 436.487762] Mem abort info: [ 436.490716] ESR = 0x0000000096000004 [ 436.494595] EC = 0x25: DABT (current EL), IL = 32 bits [ 436.500071] SET = 0, FnV = 0 [ 436.503250] EA = 0, S1PTW = 0 [ 436.506505] FSC = 0x04: level 0 translation fault [ 436.511533] Data abort info: [ 436.514558] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 [ 436.520215] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 436.525436] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 436.530918] user pgtable: 4k pages, 48-bit VAs, pgdp=00000008861a9000 [ 436.537554] [0000000000000020] pgd=0000000000000000, p4d=0000000000000000 [ 436.544548] Internal error: Oops: 0000000096000004 [#1] SMP [ 436.550374] Modules linked in: [ 436.553542] CPU: 2 UID: 0 PID: 671 Comm: bash Tainted: G W 7.0.0-rc3-g56fcdd0911a5-dirty #2 PREEMPT [ 436.564440] Tainted: [W]=WARN [ 436.567515] Hardware name: LENOVO 91B6CTO1WW/3796, BIOS O6NKT3BA 05/02/2025 [ 436.574675] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 436.581841] pc : ps883x_retimer_remove+0x14/0x94 [ 436.586605] lr : i2c_device_remove+0x28/0x84 [ 436.591017] sp : ffff8000847137c0 That's because the ps883x_retimer_remove() retrieves the driver data from i2c_get_clientdata() which was never set at probe. So, add i2c_set_clientdata() at the end of the probe.

📍 영향받는 시스템

Linux kernel (ps883x driver component)

⚔️ 공격 벡터

로컬 권한을 가진 사용자가 장치 드라이버의 unbind 명령을 실행하여 커널 패닉 유도

🛡️ 대응 방법

ps883x 드라이버의 probe 함수 마지막에 i2c_set_clientdata()를 추가한 최신 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 ps883x 드라이버 수정 사항이 반영된 최신 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel