🔍 CVE-2026-93122

7.8
CVSS Score
HIGH
2026-09-17
2026-10-30 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB gadget UAC1 및 UAC2 configfs 구현에서 샘플링 속도 목록의 길이를 검증하지 않는 취약점이 발견되었습니다. 공격자가 설정 가능한 최대 개수(UAC_MAX_RATES)를 초과하는 속도 목록을 입력할 경우, 고정 크기 배열의 범위를 벗어나 메모리에 데이터를 쓰는 버퍼 오버플로우가 발생합니다.

💡 쉬운 설명

USB 오디오 장치를 설정하는 과정에서 너무 많은 숫자를 입력하면 컴퓨터의 메모리 영역을 침범할 수 있는 오류입니다. 이로 인해 시스템이 멈추거나 보안 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: uac: validate rate list length before storing UAC1 and UAC2 configfs rate-list attributes parse a comma-separated list of sampling rates and store each parsed value in fixed-size arrays. The arrays have UAC_MAX_RATES entries, but the store paths do not check that the input contains at most that many tokens before writing through opts->name##s[i++]. Writing more than ten rates therefore writes past the end of the p_srates[] or c_srates[] array in struct f_uac1_opts or struct f_uac2_opts. With CONFIG_UBSAN_BOUNDS enabled, writing an 11-entry rate list to the UAC1 p_srate attribute reports: UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac1.c:1669:1 index 10 is out of range for type 'int [10]' __ubsan_handle_out_of_bounds.cold f_uac1_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64 The same reproducer against the UAC2 p_srate attribute reports: UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac2.c:2087:1 index 10 is out of range for type 'int [10]' __ubsan_handle_out_of_bounds.cold f_uac2_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64 Reject additional tokens once UAC_MAX_RATES entries have been parsed. Also keep the original kstrdup() pointer for kfree(), because strsep() advances the parsing cursor. Freeing the advanced cursor leaks the original buffer on successful parses and can free an interior pointer on some error paths.

📍 영향받는 시스템

UAC1/UAC2 configfs를 사용하는 Linux 커널 기반 시스템

⚔️ 공격 벡터

configfs를 통해 UAC1 또는 UAC2의 p_srate 속성에 10개 이상의 샘플링 속도 값을 입력하여 메모리 오버플로우 유도

🛡️ 대응 방법

커널 패치를 적용하여 샘플링 속도 목록의 길이를 검증하고 배열 범위를 초과하는 입력을 차단해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 보안 공지(Security Advisory)와 대조하여 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel