🇰🇷 한글 설명
Linux 커널의 vxlan 구성 요소에서 TOCTOU(Time-of-Check to Time-of-Use) 레이스 컨디션 취약점이 발견되었습니다. vxlan_na_create() 함수가 헤드룸 크기를 두 번 샘플링하는 과정에서 vxlan_changelink()에 의해 값이 변경될 경우, 할당된 메모리 범위를 벗어난 쓰기 작업이 발생할 수 있습니다.
💡 쉬운 설명
메모리 크기를 계산하는 도중에 설정값이 바뀌어, 준비된 공간보다 더 많은 데이터를 쓰려고 시도하는 오류입니다. 이로 인해 시스템 메모리의 잘못된 영역이 덮어씌워질 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vxlan: use one headroom snapshot for neighbour replies
vxlan_na_create() samples LL_RESERVED_SPACE() to size the reply skb and then
samples it again to reserve headroom. A concurrent vxlan_changelink() can
update needed_headroom between the two reads, creating a TOCTOU race. The
second value can exceed the allocation and make the Ethernet header write out
of bounds.
The race is reproducible on the unpatched kernel. It occurred when
vxlan_na_create() generated a neighbour reply while vxlan_changelink() changed
the link headroom. KASAN caught a four-byte write two bytes beyond a 704-byte
skbuff_small_head allocation.
Snapshot the headroom once and use that value for both allocation and
reservation.
📍 영향받는 시스템
vxlan 모듈을 사용하는 Linux 커널 (패치 전 버전)
⚔️ 공격 벡터
동시에 vxlan 링크 설정을 변경하여 메모리 할당 크기와 실제 사용 크기 간의 불일치를 유도하는 레이스 컨디션 공격
🛡️ 대응 방법
헤드룸 값을 한 번만 샘플링하여 할당과 예약에 동일하게 사용하도록 커널을 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인하십시오.