🇰🇷 한글 설명
Linux 커널의 pegasus_notetaker 드라이버에서 발생하는 취약점으로, 악의적인 USB 디스크립터를 통해 매우 작은 버퍼를 할당하도록 유도할 수 있습니다. 이후 특정 패턴의 인터럽트 패킷이 전송될 경우, 할당된 버퍼 크기를 확인하지 않고 데이터를 처리하여 경계 외 메모리 접근(Out-of-bounds access)이 발생합니다.
💡 쉬운 설명
나쁜 의도를 가진 USB 장치를 컴퓨터에 연결하면, 컴퓨터의 메모리 영역을 넘어서는 잘못된 데이터를 읽거나 써서 시스템을 망가뜨릴 수 있는 문제입니다. 이는 컴퓨터가 데이터를 담을 그릇의 크기를 제대로 확인하지 않아 발생하는 실수입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Input: pegasus-notetaker - fix potential out-of-bounds access
In the pegasus_notetaker driver, the pegasus_probe() function allocates
the URB transfer buffer using the wMaxPacketSize value from
the endpoint descriptor. An attacker can use a malicious USB descriptor
to force the allocation of a very small buffer.
Subsequently, if the device sends an interrupt packet with a specific
pattern (e.g., where the first byte is 0x80 or 0x42),
the pegasus_parse_packet() function parses the packet without checking
the allocated buffer size. This leads to an out-of-bounds memory access.
📍 영향받는 시스템
pegasus_notetaker 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
악의적으로 조작된 USB 디스크립터를 가진 하드웨어를 통한 물리적 연결
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.