🔍 CVE-2026-46167

5.5
CVSS Score
MEDIUM
2026-05-28
2026-11-06 17:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 usblp 드라이버에서 LPGETSTATUS ioctl 호출 시 초기화되지 않은 힙 메모리 내용이 사용자 공간으로 누출되는 취약점입니다. 악의적인 프린터가 잘못된 응답을 보내면, 할당된 버퍼의 이전 데이터가 복사되어 정보 유출이 발생합니다.

💡 쉬운 설명

프린터와 통신하는 드라이버가 메모리를 제대로 정리하지 않아, 이전의 민감한 데이터가 외부로 새어나갈 수 있습니다. 이는 시스템의 보안 설정을 업데이트하여 버퍼를 초기화함으로써 해결할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl Just like in a previous problem in this driver, usblp_ctrl_msg() will collapse the usb_control_msg() return value to 0/-errno, discarding the actual number of bytes transferred. Ideally that short command should be detected and error out, but many printers are known to send "incorrect" responses back so we can't just do that. statusbuf is kmalloc(8) at probe time and never filled before the first LPGETSTATUS ioctl. usblp_read_status() requests 1 byte. If a malicious printer responds with zero bytes, *statusbuf is one byte of stale kmalloc heap, sign-extended into the local int status, which the LPGETSTATUS path then copy_to_user()s directly to the ioctl caller. Fix this all by just zapping out the memory buffer when allocated at probe time. If a later call does a short read, the data will be identical to what the device sent it the last time, so there is no "leak" of information happening.

📍 영향받는 시스템

Linux kernel (usb: usblp 모듈)

⚔️ 공격 벡터

악성 프린터 장치를 통해 LPGETSTATUS ioctl을 호출하여 초기화되지 않은 힙 메모리 읽기

🛡️ 대응 방법

커널 패치 적용 또는 usblp 모듈 업데이트를 통해 할당 시 메모리 버퍼 초기화(zeroing) 조치

🔧 검증 코드

출력된 커널 버전이 취약한 버전인지 패치 노트 또는 보안 공지에서 확인해야 함

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