🔍 CVE-2023-53693

0.0
CVSS Score
UNKNOWN
2025-10-22
2026-10-28 19:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB Raw Gadget 드라이버(raw_gadget)에서 메모리 누수가 발견되었습니다. raw_queue_event() 호출 이전에 raw_dev->count를 증가시켜, 해당 함수가 오류를 반환하면 dev_free()가 호출되지 않아 할당된 메모리가 해제되지 않습니다. 이 커밋은 raw_queue_event()가 성공한 경우에만 kref_get()을 호출하도록 수정합니다.

💡 쉬운 설명

USB 가상 장치를 만드는 리눅스 기능에서 오류가 발생했을 때 사용하던 메모리를 제대로 반환하지 못하는 결함입니다. 시간이 지나면서 시스템 메모리가 조금씩 낭비될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: USB: gadget: Fix the memory leak in raw_gadget driver Currently, increasing raw_dev->count happens before invoke the raw_queue_event(), if the raw_queue_event() return error, invoke raw_release() will not trigger the dev_free() to be called. [ 268.905865][ T5067] raw-gadget.0 gadget.0: failed to queue event [ 268.912053][ T5067] udc dummy_udc.0: failed to start USB Raw Gadget: -12 [ 268.918885][ T5067] raw-gadget.0: probe of gadget.0 failed with error -12 [ 268.925956][ T5067] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 268.934657][ T5067] misc raw-gadget: fail, usb_gadget_register_driver returned -16 BUG: memory leak [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff8347eb55>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff8347eb55>] kzalloc include/linux/slab.h:703 [inline] [<ffffffff8347eb55>] dev_new drivers/usb/gadget/legacy/raw_gadget.c:191 [inline] [<ffffffff8347eb55>] raw_open+0x45/0x110 drivers/usb/gadget/legacy/raw_gadget.c:385 [<ffffffff827d1d09>] misc_open+0x1a9/0x1f0 drivers/char/misc.c:165 [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff8347cd2f>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff8347cd2f>] raw_ioctl_init+0xdf/0x410 drivers/usb/gadget/legacy/raw_gadget.c:460 [<ffffffff8347dfe9>] raw_ioctl+0x5f9/0x1120 drivers/usb/gadget/legacy/raw_gadget.c:1250 [<ffffffff81685173>] vfs_ioctl fs/ioctl.c:51 [inline] [<ffffffff8154bf94>] kmalloc_trace+0x24/0x90 mm/slab_common.c:1076 [<ffffffff833ecc6a>] kmalloc include/linux/slab.h:582 [inline] [<ffffffff833ecc6a>] kzalloc include/linux/slab.h:703 [inline] [<ffffffff833ecc6a>] dummy_alloc_request+0x5a/0xe0 drivers/usb/gadget/udc/dummy_hcd.c:665 [<ffffffff833e9132>] usb_ep_alloc_request+0x22/0xd0 drivers/usb/gadget/udc/core.c:196 [<ffffffff8347f13d>] gadget_bind+0x6d/0x370 drivers/usb/gadget/legacy/raw_gadget.c:292 This commit therefore invoke kref_get() under the condition that raw_queue_event() return success.

📍 영향받는 시스템

수정 이전의 Linux 커널 (raw_gadget 드라이버를 포함하는 버전, 정확한 범위는 커널 패치 이력 참조)

⚔️ 공격 벡터

로컬 사용자가 raw_gadget 장치를 반복적으로 열고 이벤트 큐 오류를 유발하여 커널 메모리를 고갈시키는 방식으로 서비스 거부를 유도할 수 있습니다.

🛡️ 대응 방법

커널을 해당 수정 커밋이 포함된 최신 안정 버전으로 업데이트하거나 배포판의 보안 업데이트를 적용하십시오.

🔧 검증 코드

출력된 커널 버전이 배포판의 수정된 패치 버전 이상인지 확인하고, raw_gadget 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.

Shell / Script
uname -r && (lsmod | grep -i raw_gadget || echo 'raw_gadget module not loaded')

💻 영향받는 소프트웨어

Linux Kernel