🇰🇷 한글 설명
Linux 커널의 TI am65-cpsw-nuss 이더넷 드라이버에서 SRC TAG로부터 port_id를 추출할 때 발생하는 취약점입니다. 기존 로직은 16비트 태그 전체를 사용했으나, 실제 포트 ID는 하위 8비트에만 존재하며 상위 8비트는 예약된 임의의 값을 가집니다. 이로 인해 잘못된 port_id가 생성되어 드라이버가 범위를 벗어난 메모리에 접근함으로써 커널 크래시가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 카드가 데이터를 받을 때 포트 번호를 잘못 읽어오는 버그가 있습니다. 이로 인해 컴퓨터 시스템이 갑자기 멈추거나 꺼지는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG
On the packet reception path, the ID of the MAC Port on which the packet
was received, is embedded in the RX DMA Descriptor's metadata. The ID is
extracted using the helper function cppi5_desc_get_tags_ids() which fills
in the 16-bit Source Tag into the 'port_id' variable. However, it is only
the lower 8-bits of the 16-bit Source Tag that represent the MAC Port ID,
while the upper 8-bits are Hardware-Reserved and carry an arbitrary value.
With the existing logic, sporadic kernel crash is observed due to the
subsequent driver code accessing out-of-bound memory because of an invalid
port_id.
Hence, fix the port_id extraction logic to use only the lower 8-bits of the
Source Tag as the MAC Port ID.
📍 영향받는 시스템
Linux kernel (TI am65-cpsw-nuss ethernet driver components)
⚔️ 공격 벡터
특수하게 조작된 네트워크 패킷을 전송하여 잘못된 port_id를 유도함으로써 커널 크래시 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 port_id 추출 로직 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인