🇰🇷 한글 설명
Linux kernel의 netfilter flowtable에서 IPv6 트래픽 처리 시 하드웨어 오프로드 액션 개수 제한을 초과할 수 있는 취약점입니다. 최대 허용 액션이 16개인데 실제로 필요한 액션이 17개(이더넷 조작, SNAT, DNAT, VLAN 처리 등)일 수 있어 규칙이 제대로 오프로드되지 않거나 메모리 손상이 발생할 수 있습니다. 수정은 액션 개수 검증을 강화하고 최대값을 24로 증가시킵니다.
💡 쉬운 설명
Linux 커널이 고속 네트워크 트래픽 처리 규칙을 설정할 때 IPv6에서 할당된 작업 개수가 부족해서 규칙이 제대로 적용되지 않습니다. 이를 수정해서 더 많은 작업을 처리할 수 있도록 했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netfilter: flowtable: strictly check for maximum number of actions
The maximum number of flowtable hardware offload actions in IPv6 is:
* ethernet mangling (4 payload actions, 2 for each ethernet address)
* SNAT (4 payload actions)
* DNAT (4 payload actions)
* Double VLAN (4 vlan actions, 2 for popping vlan, and 2 for pushing)
for QinQ.
* Redirect (1 action)
Which makes 17, while the maximum is 16. But act_ct supports for tunnels
actions too. Note that payload action operates at 32-bit word level, so
mangling an IPv6 address takes 4 payload actions.
Update flow_action_entry_next() calls to check for the maximum number of
supported actions.
While at it, rise the maximum number of actions per flow from 16 to 24
so this works fine with IPv6 setups.
📍 영향받는 시스템
Linux kernel 5.x ~ 6.x 버전 (netfilter flowtable 기능을 사용하는 IPv6 환경)
⚔️ 공격 벡터
로컬 또는 네트워크 공격자가 특정 IPv6 트래픽 규칙을 설정하여 메모리 손상 또는 DoS 유발
🛡️ 대응 방법
Linux kernel을 패치 버전으로 업그레이드 또는 netfilter flowtable 기능 비활성화
🔧 검증 코드
kernel 버전이 5.x 또는 6.x이고 NF_FLOW_TABLE이 활성화되어 있으면 영향받음. y로 표시된 경우 취약함.
uname -r | grep -E '^(5\.[0-9]+|6\.[0-9]+)' && cat /boot/config-$(uname -r) | grep -i 'CONFIG_NF_FLOW_TABLE' 2>/dev/null