🔍 CVE-2026-89622

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

🇰🇷 한글 설명

Linux 커널의 MCP2221 HID 드라이버에서 I2C/SMBus 전송 완료 후 수신 버퍼(rxbuf)를 초기화하지 않아 발생하는 Use-After-Free 취약점입니다. 전송이 끝난 후에도 버퍼 포인터가 남아 있어, 메모리가 해제된 후 데이터가 복사될 경우 시스템 오류나 권한 상승을 초래할 수 있습니다.

💡 쉬운 설명

데이터를 주고받는 과정이 끝났는데도 컴퓨터가 예전에 사용했던 메모리 주소를 계속 기억하고 있어 발생하는 문제입니다. 이로 인해 이미 비워진 메모리 공간에 잘못된 데이터를 쓰게 되어 시스템이 고장 나거나 해킹될 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: HID: mcp2221: clear rxbuf after I2C/SMBus transfer completes mcp_i2c_smbus_read() stores the caller-supplied buffer pointer in mcp->rxbuf for the duration of a transfer but never clears it when the transfer finishes or times out. Once the caller frees or reuses the buffer, mcp->rxbuf becomes a dangling pointer. A delayed or spurious MCP2221_I2C_GET_DATA report can then drive mcp2221_raw_event() to memcpy device data into the freed memory, causing a write use-after-free. Route all return paths through a single exit point that clears mcp->rxbuf and mcp->rxbuf_size, so that the existing !mcp->rxbuf guard in the raw_event handler can reject any report arriving after the transfer has ended.

📍 영향받는 시스템

MCP2221 HID 드라이버를 사용하는 Linux 커널 버전

⚔️ 공격 벡터

지연되거나 잘못된 MCP2221_I2C_GET_DATA 보고를 유도하여 해제된 메모리에 데이터를 쓰는 방식

🛡️ 대응 방법

I2C/SMBus 전송 완료 또는 타임아웃 시 mcp->rxbuf와 mcp->rxbuf_size를 명확히 초기화하도록 커널 패치 적용

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 보안 패치가 적용되었는지 확인합니다.

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