🔍 CVE-2026-80772

0.0
CVSS Score
UNKNOWN
2026-09-04
2026-10-19 09:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 HID Nintendo 드라이버에서 joycon_ctlr_read_handler() 함수가 입력 보고서의 길이를 불충분하게 검증하여 발생하는 경계 외 읽기(Out-of-bounds read) 취약점입니다. 공격자가 조작된 Joy-Con 또는 Pro Controller를 통해 12바이트 크기의 보고서를 보내면, 드라이버는 이를 49바이트 크기로 처리하여 커널 내부 메모리를 읽고 사용자 공간으로 유출할 수 있습니다.

💡 쉬운 설명

닌텐도 컨트롤러를 컴퓨터에 연결했을 때, 가짜 데이터를 보내 컴퓨터의 중요한 내부 정보를 몰래 빼낼 수 있는 보안 약점입니다. 컨트롤러가 보내는 데이터의 길이를 제대로 확인하지 않아 발생하는 문제입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: HID: nintendo: fix out-of-bounds read in joycon_ctlr_read_handler() joycon_ctlr_read_handler() casts an incoming HID input report to struct joycon_input_report and parses it, guarding the cast only with a 12-byte length check: if (size >= 12) /* make sure it contains the input report */ joycon_parse_report(ctlr, (struct joycon_input_report *)data); struct joycon_input_report is 49 bytes: a 13-byte header followed by a union whose IMU arm is 36 bytes. For an IMU report joycon_parse_report() -> joycon_parse_imu_report() walks that union (struct offsets 13..48), so a report of exactly 12 bytes with data[0] == JC_INPUT_IMU_DATA passes the guard yet is read up to 37 bytes past its declared length. The over-read bytes are decoded into accelerometer/gyroscope values and forwarded to userspace through the "(IMU)" input device, leaking driver-internal memory. data[0] and size are fully controlled by a malicious or spoofed Joy-Con/Pro Controller. Receive buffers are sized to the maximum report length, so this is an over-read within the allocation rather than a slab OOB, but the decoded bytes still reach userspace. The sibling subcmd path in joycon_ctlr_handle_event() already bounds the same cast correctly: if (size < sizeof(struct joycon_input_report) || data[0] != JC_INPUT_SUBCMD_REPLY) break; Use the same sizeof(struct joycon_input_report) bound here.

📍 영향받는 시스템

Linux kernel (HID: nintendo driver 포함 버전)

⚔️ 공격 벡터

악의적으로 조작되거나 스푸핑된 Joy-Con/Pro Controller를 통한 HID 입력 보고서 전송

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 joycon_ctlr_read_handler()의 길이 검증 로직을 수정해야 합니다.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel