🇰🇷 한글 설명
Linux 커널의 mlx5e 드라이버에서 IPv6 IPsec 정책 마스크가 소스와 목적지 주소 필드에 서로 뒤바뀐 채 설치되는 문제가 수정되었습니다. 소스와 목적지의 프리픽스 길이가 다를 경우, 하드웨어 규칙이 정책 대상 트래픽을 놓치거나 정책 범위 밖의 트래픽을 잘못 매칭할 수 있습니다.
💡 쉬운 설명
IPsec 보안 정책이 출발지와 목적지 주소 조건을 잘못 뒤바꿔 적용하던 버그입니다. 그 결과 보호해야 할 통신은 통과시키지 못하고, 보호 대상이 아닌 통신은 잘못 허용할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5e: fix swapped IPv6 IPsec policy masks
IPv6 XFRM policies may use different source and destination prefix
lengths. mlx5e_ipsec_policy_mask() builds the corresponding masks
independently, but setup_fte_addr6() installs each mask in the opposite
address field.
When the prefix lengths differ, this makes the source match use the
destination prefix and the destination match use the source prefix. The
resulting hardware rule can both miss traffic covered by the policy and
match traffic outside it.
Install each mask in its corresponding match field.
📍 영향받는 시스템
mlx5e(Mellanox/NVIDIA ConnectX) 드라이버로 IPv6 IPsec 오프로드를 사용하는 수정 전 Linux 커널 버전
⚔️ 공격 벡터
IPv6 IPsec 정책의 출발지와 목적지 프리픽스 길이가 다를 때 정책 범위 밖의 트래픽이 허용되거나 정책 대상 트래픽이 차단되는 방식으로 악용될 수 있음
🛡️ 대응 방법
패치가 포함된 Linux 커널로 업데이트하거나 배포판 보안 권고에 따라 커널을 재부팅하여 패치를 적용
🔧 검증 코드
출력된 커널 버전을 배포판의 수정 버전과 비교하고, mlx5_core 모듈과 IPv6 xfrm 정책이 존재하면 해당 시스템이 영향 대상일 가능성이 높으므로 패치 적용 여부를 확인해야 합니다.
uname -r && (ip xfrm policy 2>/dev/null | head -20) && (lsmod 2>/dev/null | grep -E 'mlx5_core|mlx5_ib')