🇰🇷 한글 설명
Linux 커널의 stmmac 네트워크 드라이버에서 tc-cbs 기능을 비활성화할 때 포트 전송 속도(port_transmit_rate_kbps)가 0으로 설정되어 div_s64 함수에서 0으로 나누기 오류가 발생합니다. 이 문제는 b8c43360f6e4 커밋에서 오프로드 비활성화 시 속도 분배기 계산을 생략하면서 발생했으며, tc-cbs 비활성화 시 조기 반환 추가로 해결됩니다.
💡 쉬운 설명
Linux 커널의 네트워크 드라이버에서 특정 트래픽 제어 기능을 끌 때 계산 오류로 인해 시스템이 크래시될 수 있습니다. 권한이 있는 로컬 사용자가 의도적으로 이를 유발할 수 있어 서비스 거부 공격이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: stmmac: Fix zero-division error when disabling tc cbs
The commit b8c43360f6e4 ("net: stmmac: No need to calculate speed divider
when offload is disabled") allows the "port_transmit_rate_kbps" to be
set to a value of 0, which is then passed to the "div_s64" function when
tc-cbs is disabled. This leads to a zero-division error.
When tc-cbs is disabled, the idleslope, sendslope, and credit values the
credit values are not required to be configured. Therefore, adding a return
statement after setting the txQ mode to DCB when tc-cbs is disabled would
prevent a zero-division error.
📍 영향받는 시스템
Linux kernel stmmac driver (b8c43360f6e4 커밋 이후 버전) - 대부분의 Linux 배포판 영향
⚔️ 공격 벡터
로컬 권한 사용자가 tc-cbs 기능을 비활성화하는 tc qdisc 명령어 실행 시 트리거
🛡️ 대응 방법
Linux 커널을 최신 패치 버전으로 업데이트하여 tc-cbs 비활성화 시 조기 반환 로직 적용
🔧 검증 코드
커널 버전 및 stmmac 모듈 정보 확인 후 보안 패치 버전과 비교하여 업데이트 필요 여부 판단
uname -r && modinfo stmmac 2>/dev/null | grep -i version