CVE-2026-64346 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 25.

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

usb: gadget: udc: gadget_match_driver에서의 Use-After-Free(UAF) 수정

udc 구조체는 gadge의 관리 구조체로 동작하지만, 두 객체의 수명 주기(lifecycle)는 분리되어 있습니다. usb_del_gadget()이 모드 전환 작업(mode-switch work) 등을 통해 udc 메모리를 해제하는 동안, gadget_match_driver()가 configfs 등을 통해 동시에 해지된 udc 메모리에 접근하는 Race Condition이 존재합니다. 이로 인해 Use-After-Free(UAF)가 발생하며, 해지된 메모리가 0으로 초기화(zeroed)될 때 NULL 포인터 역참조(NULL pointer dereference)를 유발하여 다음과 같은 오류를 일으킵니다:

[39430.908615][ T1171] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[39430.911397][ T1171] pc : __pi_strcmp+0x20/0x140
[39430.911441][ T1171] lr : gadget_match_driver+0x34/0x60
... [39430.911890][ T1171] usb_gadget_register_driver_owner+0x50/0xf8
[39430.911910][ T1171] gadget_dev_desc_UDC_store+0xf4/0x140
[39430.931308][ T1171] configfs_write_iter+0xec/0x134

[39430.957058][ T1171] Workqueue: events_freezable __dwc3_set_mode
[39430.957287][ T1171] dwc3_gadget_exit+0x34/0x8c
[39430.957304][ T1171] __dwc3_set_mode+0xc0/0x664

gadgets가 해제될 때까지 udc 구조체가 할당된 상태를 유지하도록 함으로써 이 문제를 해결합니다. 이를 위해 코어에 새로운 usb_gadget_release() 루틴을 도입합니다. gadget이 추가되면, usb_add_gadget()은 gadge의 release routine을 udc 구조체에 저장하고 udc에 대한 참조(reference)를 획득합니다. Gadgets가 해제될 때, usb_gadget_release()는 udc에 대한 참조를 감소시키고 그 후 gadges의 release routine을 호출합니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-383144

EPSS

0.00206

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!