🔍 CVE-2025-21916

5.5
CVSS Score
MEDIUM
2025-04-01
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB ATM cxacru 드라이버에서 엔드포인트 검사가 불완전한 문제가 해결되었습니다. 기존에는 엔드포인트의 종류만 확인하고 주소(address)는 검사하지 않아, 잘못된 엔드포인트를 가진 장치가 드라이버에 바인딩되어 USB 요청 블록(URB) 전송 경고 및 커널 경고가 발생할 수 있었습니다. 이를 usb_check_XXX_endpoints() 방식으로 교체하여 엔드포인트 주소까지 검증하도록 수정되었습니다.

💡 쉬운 설명

특정 USB ADSL 모뎀 드라이버가 잘못된 장치의 연결 정보를 충분히 확인하지 않아 발생한 문제입니다. 악성 또는 비정상 USB 장치가 연결될 때 커널이 경고를 내거나 불안정해질 수 있어 이를 수정했습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: atm: cxacru: fix a flaw in existing endpoint checks Syzbot once again identified a flaw in usb endpoint checking, see [1]. This time the issue stems from a commit authored by me (2eabb655a968 ("usb: atm: cxacru: fix endpoint checking in cxacru_bind()")). While using usb_find_common_endpoints() may usually be enough to discard devices with wrong endpoints, in this case one needs more than just finding and identifying the sufficient number of endpoints of correct types - one needs to check the endpoint's address as well. Since cxacru_bind() fills URBs with CXACRU_EP_CMD address in mind, switch the endpoint verification approach to usb_check_XXX_endpoints() instead to fix incomplete ep testing. [1] Syzbot report: usb 5-1: BOGUS urb xfer, pipe 3 != type 1 WARNING: CPU: 0 PID: 1378 at drivers/usb/core/urb.c:504 usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503 ... RIP: 0010:usb_submit_urb+0xc4e/0x18c0 drivers/usb/core/urb.c:503 ... Call Trace: <TASK> cxacru_cm+0x3c8/0xe50 drivers/usb/atm/cxacru.c:649 cxacru_card_status drivers/usb/atm/cxacru.c:760 [inline] cxacru_bind+0xcf9/0x1150 drivers/usb/atm/cxacru.c:1223 usbatm_usb_probe+0x314/0x1d30 drivers/usb/atm/usbatm.c:1058 cxacru_usb_probe+0x184/0x220 drivers/usb/atm/cxacru.c:1377 usb_probe_interface+0x641/0xbb0 drivers/usb/core/driver.c:396 really_probe+0x2b9/0xad0 drivers/base/dd.c:658 __driver_probe_device+0x1a2/0x390 drivers/base/dd.c:800 driver_probe_device+0x50/0x430 drivers/base/dd.c:830 ...

📍 영향받는 시스템

패치 이전의 Linux 커널 (cxacru USB ATM 드라이버 포함 버전)

⚔️ 공격 벡터

물리적으로 USB 장치를 연결하여 잘못된 엔드포인트 구성을 가진 장치를 드라이버에 바인딩시키는 방식

🛡️ 대응 방법

사용 중인 배포판의 최신 커널 업데이트를 적용하여 수정된 버전으로 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 해당 수정 커밋이 포함된 안정 버전과 비교하여 최신 패치 적용 여부를 확인합니다.

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