🇰🇷 한글 설명
리눅스 커널의 net: bridge 모듈에서 MST(Multiple Spanning Tree) 기능이 활성화된 경우, 포트 삭제 과정 중 레이스 컨디션으로 인해 Use-After-Free 취약점이 발생합니다. 포트 상태가 비활성화되었음에도 MST가 포트 상태 체크를 우회하여 FDB 학습을 시도하면서 메모리 오류를 유발합니다.
💡 쉬운 설명
네트워크 장비의 연결을 끊는 과정에서 데이터가 저장된 메모리 공간을 잘못 참조하여 시스템이 충돌하거나 오류가 발생하는 문제입니다. 특정 네트워크 설정(MST)이 켜져 있을 때 데이터가 삭제된 후에도 계속 접근을 시도하면서 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: fix use-after-free due to MST port state bypass
syzbot reported[1] a use-after-free when deleting an expired fdb. It is
due to a race condition between learning still happening and a port being
deleted, after all its fdbs have been flushed. The port's state has been
toggled to disabled so no learning should happen at that time, but if we
have MST enabled, it will bypass the port's state, that together with VLAN
filtering disabled can lead to fdb learning at a time when it shouldn't
happen while the port is being deleted. VLAN filtering must be disabled
because we flush the port VLANs when it's being deleted which will stop
learning. This fix adds a check for the port's vlan group which is
initialized to NULL when the port is getting deleted, that avoids the port
state bypass. When MST is enabled there would be a minimal new overhead
in the fast-path because the port's vlan group pointer is cache-hot.
[1] https://syzkaller.appspot.com/bug?extid=dd280197f0f7ab3917be
📍 영향받는 시스템
MST 기능이 활성화된 리눅스 커널 기반 시스템 (bridge 모듈 사용 시)
⚔️ 공격 벡터
네트워크 포트 삭제와 FDB 학습이 동시에 일어나는 레이스 컨디션을 유도하여 메모리 오류 유발
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 포트 삭제 시 VLAN 그룹 체크 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인