🇰🇷 한글 설명
Linux 커널의 네트워크 스택에서 BIG TCP 패킷을 처리할 때 IPv6 확장 헤더가 포함된 경우 하드웨어 체크섬 오프로드를 비활성화하여 경고(WARNING)를 발생시키는 취약점입니다. 이 문제는 특정 커밋에서 IPv6 확장 헤더를 지원하지 않도록 설정하면서 발생했으며, 패킷 길이 통신을 위한 IPv6_TLV_Jumbo 헤더 처리 과정에서 오류가 발생합니다.
💡 쉬운 설명
대용량 네트워크 데이터를 처리할 때 컴퓨터가 하드웨어 기능을 제대로 사용하지 못해 시스템에 경고 메시지를 남기거나 성능 저하를 일으킬 수 있는 문제입니다. 특정 네트워크 설정 환경에서 데이터 패킷을 처리하는 방식에 오류가 있는 상태입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: reenable NETIF_F_IPV6_CSUM offload for BIG TCP packets
The blamed commit disabled hardware offoad of IPv6 packets with
extension headers on devices that advertise NETIF_F_IPV6_CSUM,
based on the definition of that feature in skbuff.h:
* * - %NETIF_F_IPV6_CSUM
* - Driver (device) is only able to checksum plain
* TCP or UDP packets over IPv6. These are specifically
* unencapsulated packets of the form IPv6|TCP or
* IPv6|UDP where the Next Header field in the IPv6
* header is either TCP or UDP. IPv6 extension headers
* are not supported with this feature. This feature
* cannot be set in features for a device with
* NETIF_F_HW_CSUM also set. This feature is being
* DEPRECATED (see below).
The change causes skb_warn_bad_offload to fire for BIG TCP
packets.
[ 496.310233] WARNING: CPU: 13 PID: 23472 at net/core/dev.c:3129 skb_warn_bad_offload+0xc4/0xe0
[ 496.310297] ? skb_warn_bad_offload+0xc4/0xe0
[ 496.310300] skb_checksum_help+0x129/0x1f0
[ 496.310303] skb_csum_hwoffload_help+0x150/0x1b0
[ 496.310306] validate_xmit_skb+0x159/0x270
[ 496.310309] validate_xmit_skb_list+0x41/0x70
[ 496.310312] sch_direct_xmit+0x5c/0x250
[ 496.310317] __qdisc_run+0x388/0x620
BIG TCP introduced an IPV6_TLV_JUMBO IPv6 extension header to
communicate packet length, as this is an IPv6 jumbogram. But, the
feature is only enabled on devices that support BIG TCP TSO. The
header is only present for PF_PACKET taps like tcpdump, and not
transmitted by physical devices.
For this specific case of extension headers that are not
transmitted, return to the situation before the blamed commit
and support hardware offload.
ipv6_has_hopopt_jumbo() tests not only whether this header is present,
but also that it is the only extension header before a terminal (L4)
header.
📍 영향받는 시스템
IPv6 확장 헤더 및 BIG TCP 기능을 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
직접적인 공격보다는 특정 네트워크 트래픽(BIG TCP/IPv6 Jumbogram) 유입 시 커널 경고 발생 및 성능 저하 유발
🛡️ 대응 방법
해당 취약점이 해결된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 릴리스 버전인지 확인하십시오.