🔍 CVE-2026-64233

5.5
CVSS Score
MEDIUM
2026-07-24
2026-08-12 19:13
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB gadget UVC 드라이버에서 uvc_function_bind 함수가 확장 유닛(XU) 목록을 순회할 때 적절한 잠금(lock)을 유지하지 않아 발생하는 레이스 컨디션 취약점입니다. 권한이 있는 사용자가 configfs를 통해 확장을 삭제하는 동시에 장치를 바인딩하면 해제된 메모리에 접근하여 시스템 오류를 유발할 수 있습니다.

💡 쉬운 설명

USB 장치를 설정하는 과정에서 데이터 목록을 읽는 도중, 다른 명령이 해당 목록을 갑자기 삭제해버려 컴퓨터가 혼란에 빠지는 문제입니다. 이로 인해 시스템이 멈추거나 오류가 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: uvc: hold opts->lock across XU walks in uvc_function_bind uvc_function_bind() walks &opts->extension_units twice without holding opts->lock: - directly, for the iExtension string-descriptor fixup loop; - indirectly, four times via uvc_copy_descriptors() (once per speed), where the helper iterates uvc->desc.extension_units (which aliases &opts->extension_units) to size and emit XU descriptors. The configfs side (uvcg_extension_make / uvcg_extension_drop, in drivers/usb/gadget/function/uvc_configfs.c) takes opts->lock around its list_add_tail / list_del operations. A privileged userspace process that holds the configfs subtree open and writes the gadget UDC name to bind the function while concurrently rmdir()'ing an extensions subdir can race uvcg_extension_drop() against the bind-time list walks and dereference a freed struct uvcg_extension. Hold opts->lock from the start of the XU string-descriptor fixup through the last uvc_copy_descriptors() call, releasing on the descriptor-error path via a new error_unlock label that drops the lock before falling through to the existing error label. This matches the locking discipline of the configfs callbacks and removes the only remaining unsynchronised reader of the XU list during bind. Reachability: only privileged processes that can mount configfs and write to gadget UDC files can trigger the race, so this is a correctness fix rather than a security boundary.

📍 영향받는 시스템

Linux kernel (USB gadget UVC driver 사용 시스템)

⚔️ 공격 벡터

configfs 권한을 가진 로컬 사용자가 장치 바인딩과 확장 유닛 삭제를 동시에 수행하는 레이스 컨디션 공격

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 uvc_function_bind의 잠금 메커니즘을 수정해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

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