🇰🇷 한글 설명
Linux 커널의 dwc3 USB 컨트롤러 드라이버에서 dwc3_ulpi_setup() 함수 호출 시 잘못된 주소 공간의 인자가 전달되는 취약점이 발견되었습니다. 이로 인해 레지스터 읽기/쓰기 과정에서 잘못된 메모리 주소에 접근하여 시스템 불안정이나 예기치 않은 동작을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 USB 장치를 관리하는 프로그램이 메모리의 엉뚱한 위치를 읽거나 쓰려고 시도하는 오류가 있었습니다. 이 오류는 시스템을 멈추게 하거나 예상치 못한 오작동을 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: dwc3: fix dwc3_readl() and dwc3_writel() calls in dwc3_ulpi_setup()
The dwc3_ulpi_setup() calls the register read and write calls with
dwc3->regs when both these calls take the dwc3 structure directly.
Chnage these two calls to fix the following sparse warning, and
possibly a nasty bug in the dwc3_ulpi_setup() code:
drivers/usb/dwc3/core.c:796:45: warning: incorrect type in argument 1 (different address spaces)
drivers/usb/dwc3/core.c:796:45: expected struct dwc3 *dwc
drivers/usb/dwc3/core.c:796:45: got void [noderef] __iomem *regs
drivers/usb/dwc3/core.c:798:40: warning: incorrect type in argument 1 (different address spaces)
drivers/usb/dwc3/core.c:798:40: expected struct dwc3 *dwc
drivers/usb/dwc3/core.c:798:40: got void [noderef] __iomem *regs
📍 영향받는 시스템
dwc3 드라이버를 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
로컬 공격자가 특정 USB 장치 설정 과정을 유도하여 메모리 오류를 발생시킬 수 있음
🛡️ 대응 방법
dwc3 드라이버의 dwc3_ulpi_setup() 함수 내 레지스터 접근 코드가 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 확인