🔍 CVE-2025-38229

5.5
CVSS Score
MEDIUM
2025-07-04
2026-11-05 21:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 media 서브시스템 cxusb 드라이버에서, USB 쓰기 작업이 실패했음에도 읽기 결과 버퍼(rbuf)를 검사하는 바람에 초기화되지 않은 값을 사용하는 문제가 해결되었습니다. 쓰기가 실패하면 읽기가 수행되지 않아 변수가 초기화되지 않은 채 남으며, 이로 인해 KMSAN이 감지한 uninit-value 오류가 발생했습니다.

💡 쉬운 설명

USB 장치에 데이터를 보내는 데 실패했는데도 프로그램이 응답 값을 확인하려 해서 생긴 오류입니다. 이 결함은 메모리에 있던 쓰레기 값을 잘못 사용하게 만들어 시스템이 불안정해질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: media: cxusb: no longer judge rbuf when the write fails syzbot reported a uninit-value in cxusb_i2c_xfer. [1] Only when the write operation of usb_bulk_msg() in dvb_usb_generic_rw() succeeds and rlen is greater than 0, the read operation of usb_bulk_msg() will be executed to read rlen bytes of data from the dvb device into the rbuf. In this case, although rlen is 1, the write operation failed which resulted in the dvb read operation not being executed, and ultimately variable i was not initialized. [1] BUG: KMSAN: uninit-value in cxusb_gpio_tuner drivers/media/usb/dvb-usb/cxusb.c:124 [inline] BUG: KMSAN: uninit-value in cxusb_i2c_xfer+0x153a/0x1a60 drivers/media/usb/dvb-usb/cxusb.c:196 cxusb_gpio_tuner drivers/media/usb/dvb-usb/cxusb.c:124 [inline] cxusb_i2c_xfer+0x153a/0x1a60 drivers/media/usb/dvb-usb/cxusb.c:196 __i2c_transfer+0xe25/0x3150 drivers/i2c/i2c-core-base.c:-1 i2c_transfer+0x317/0x4a0 drivers/i2c/i2c-core-base.c:2315 i2c_transfer_buffer_flags+0x125/0x1e0 drivers/i2c/i2c-core-base.c:2343 i2c_master_send include/linux/i2c.h:109 [inline] i2cdev_write+0x210/0x280 drivers/i2c/i2c-dev.c:183 do_loop_readv_writev fs/read_write.c:848 [inline] vfs_writev+0x963/0x14e0 fs/read_write.c:1057 do_writev+0x247/0x5c0 fs/read_write.c:1101 __do_sys_writev fs/read_write.c:1169 [inline] __se_sys_writev fs/read_write.c:1166 [inline] __x64_sys_writev+0x98/0xe0 fs/read_write.c:1166 x64_sys_call+0x2229/0x3c80 arch/x86/include/generated/asm/syscalls_64.h:21 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x1e0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f

📍 영향받는 시스템

CXUSB 기반 DVB-T/T2/C 튜너 장치를 지원하는 Linux 커널 (수정 이전 버전)

⚔️ 공격 벡터

로컬 사용자가 해당 USB 튜너 장치를 연결하거나 I2C 쓰기 요청을 유발하여 초기화되지 않은 메모리 값을 사용하게 만드는 방식이며, 주로 시스템 불안정이나 정보 노출 가능성이 있습니다.

🛡️ 대응 방법

커널을 CVE-2025-38229 수정이 포함된 최신 안정 버전으로 업데이트하거나 배포판의 보안 업데이트를 적용하세요.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 업데이트 내역과 비교하여 수정이 포함된 버전인지 확인하고, 해당 드라이버가 로드되어 있는지는 lsmod | grep cxusb로 추가 확인할 수 있습니다.

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