🇰🇷 한글 설명
Linux 커널의 mlx5 드라이버에서 team 디바이스 이벤트를 처리할 때 slab-out-of-bounds 메모리 접근 취약점이 발견되었습니다. team_port 구조체에 bonding 전용 API를 호출함으로써 발생하는 메모리 범위 초과 오류를 수정하여 안정성을 확보했습니다.
💡 쉬운 설명
네트워크 장치를 연결하는 과정에서 소프트웨어가 잘못된 메모리 영역을 건드려 시스템 오류를 일으킬 수 있는 문제입니다. 이 문제는 특정 네트워크 설정(team 디바이스)을 사용할 때 발생하며, 최신 커널 업데이트로 해결되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5: Fix slab-out-of-bounds when handling team device events
The mlx5_handle_changeupper_event() and mlx5_handle_changeinfodata_event()
functions check for LAG masters (which includes both bonding and team
devices) but only call bonding-specific APIs. When processing team device
events, calling bond_slave_get_rcu() and bond_is_slave_inactive() on
team_port structures causes KASAN to detect an out-of-bounds memory access
since team_port is smaller than bond slave.
Fix this by wrapping the bond-specific API calls with a check for bonding
devices. This allows the function to still process LAG events for both
bonding and teams but only calls bond-specific functions when dealing with
actual bonding devices.
For mlx5_handle_changeinfodata_event(), keep the explicit bond check as
mlx5 doesn't handle state information for team ports anyway.
Tested with Mellanox ConnectX-5 on Linux 7.2.0-rc6:
- Bonding: PASS (no regressions)
- Team device: PASS (no KASAN errors)
📍 영향받는 시스템
Linux kernel (mlx5 driver 사용 시스템)
⚔️ 공격 벡터
특수하게 조작된 네트워크 장치 이벤트(team device event)를 통한 메모리 손상 유도
🛡️ 대응 방법
mlx5 드라이버의 수정 사항이 반영된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인합니다.