🇰🇷 한글 설명
Linux 커널의 bnxt_en 드라이버에서 TX BD의 bd_cnt 필드가 적절히 마스킹되지 않는 취약점이 발견되었습니다. SKB 조각 수가 칩이 지원하는 최대치인 32를 초과할 경우, bd_cnt 값이 범위를 벗어나 TX BD를 손상시키고 전송 타임아웃을 유발할 수 있습니다.
💡 쉬운 설명
네트워크 카드가 처리할 수 있는 데이터 조각의 개수가 한계를 넘을 때, 데이터 기록 방식에 오류가 생기는 문제입니다. 이로 인해 네트워크 전송이 멈추거나 시스템 성능에 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
bnxt_en: Mask the bd_cnt field in the TX BD properly
The bd_cnt field in the TX BD specifies the total number of BDs for
the TX packet. The bd_cnt field has 5 bits and the maximum number
supported is 32 with the value 0.
CONFIG_MAX_SKB_FRAGS can be modified and the total number of SKB
fragments can approach or exceed the maximum supported by the chip.
Add a macro to properly mask the bd_cnt field so that the value 32
will be properly masked and set to 0 in the bd_cnd field.
Without this patch, the out-of-range bd_cnt value will corrupt the
TX BD and may cause TX timeout.
The next patch will check for values exceeding 32.
📍 영향받는 시스템
bnxt_en 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 SKB 조각을 포함한 네트워크 패킷 전송을 통한 메모리/데이터 구조 손상
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인