🇰🇷 한글 설명
Linux 커널의 icssg 드라이버에서 하드웨어에 PA 통계 블록이 없는 경우에도 통계 조회를 시도하여 발생하는 취약점입니다. 이로 인해 시스템 로그에 수많은 오류 메시지가 기록되며, 네트워크 통계 데이터(rx_errors, rx_dropped 등)가 잘못된 값으로 표시되는 데이터 오염이 발생합니다.
💡 쉬운 설명
네트워크 장치의 상태를 확인하는 과정에서 하드웨어가 지원하지 않는 기능을 계속 요청하여 시스템에 불필요한 기록을 남기고 통계 수치를 엉뚱하게 만드는 문제입니다. 이로 인해 네트워크 오류를 정확히 파악하기 어려워질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: ti: icssg: guard PA stat lookups
icssg_ndo_get_stats64() unconditionally calls emac_get_stat_by_name()
with FW PA stat names regardless of whether the PA stats block is
present on the hardware. emac_get_stat_by_name() already guards the
PA stats lookup with `if (emac->prueth->pa_stats)`; when that pointer
is NULL the lookup falls through to netdev_err() and returns -EINVAL.
Because ndo_get_stats64 is polled regularly by the networking stack
this produces thousands of log entries of the form:
icssg-prueth icssg1-eth end0: Invalid stats FW_RX_ERROR
A secondary consequence is that the int(-EINVAL) return value is
implicitly widened to a near-ULLONG_MAX unsigned value when accumulated
into the __u64 fields of rtnl_link_stats64, silently corrupting the
rx_errors, rx_dropped and tx_dropped counters reported by `ip -s link`.
Every other PA-aware code path in the driver is already guarded with
the same `if (emac->prueth->pa_stats)` check. Apply the same guard
here.
📍 영향받는 시스템
Linux kernel (icssg ethernet driver components)
⚔️ 공격 벡터
로컬 시스템에서 네트워크 통계 정보를 조회할 때 발생 (DoS 또는 데이터 무결성 저해)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 icssg_ndo_get_stats64() 함수에 가드 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.