🇰🇷 한글 설명
Linux 커널의 vxlan 드라이버에서 FDB(전달 데이터베이스) 엔트리의 'used'와 'updated' 필드가 여러 스레드에서 동시에 접근될 때 데이터 레이스가 발생하는 문제입니다. READ_ONCE()/WRITE_ONCE()로 해당 접근을 명시적으로 표시하여 문제를 해결했습니다.
💡 쉬운 설명
여러 작업이 동시에 같은 메모리 값을 읽고 쓰면서 값이 꼬일 수 있는 문제입니다. 주로 안정성 문제로, 커널 패치로 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vxlan: Annotate FDB data races
The 'used' and 'updated' fields in the FDB entry structure can be
accessed concurrently by multiple threads, leading to reports such as
[1]. Can be reproduced using [2].
Suppress these reports by annotating these accesses using
READ_ONCE() / WRITE_ONCE().
[1]
BUG: KCSAN: data-race in vxlan_xmit / vxlan_xmit
write to 0xffff942604d263a8 of 8 bytes by task 286 on cpu 0:
vxlan_xmit+0xb29/0x2380
dev_hard_start_xmit+0x84/0x2f0
__dev_queue_xmit+0x45a/0x1650
packet_xmit+0x100/0x150
packet_sendmsg+0x2114/0x2ac0
__sys_sendto+0x318/0x330
__x64_sys_sendto+0x76/0x90
x64_sys_call+0x14e8/0x1c00
do_syscall_64+0x9e/0x1a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
read to 0xffff942604d263a8 of 8 bytes by task 287 on cpu 2:
vxlan_xmit+0xadf/0x2380
dev_hard_start_xmit+0x84/0x2f0
__dev_queue_xmit+0x45a/0x1650
packet_xmit+0x100/0x150
packet_sendmsg+0x2114/0x2ac0
__sys_sendto+0x318/0x330
__x64_sys_sendto+0x76/0x90
x64_sys_call+0x14e8/0x1c00
do_syscall_64+0x9e/0x1a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
value changed: 0x00000000fffbac6e -> 0x00000000fffbac6f
Reported by Kernel Concurrency Sanitizer on:
CPU: 2 UID: 0 PID: 287 Comm: mausezahn Not tainted 6.13.0-rc7-01544-gb4b270f11a02 #5
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014
[2]
#!/bin/bash
set +H
echo whitelist > /sys/kernel/debug/kcsan
echo !vxlan_xmit > /sys/kernel/debug/kcsan
ip link add name vx0 up type vxlan id 10010 dstport 4789 local 192.0.2.1
bridge fdb add 00:11:22:33:44:55 dev vx0 self static dst 198.51.100.1
taskset -c 0 mausezahn vx0 -a own -b 00:11:22:33:44:55 -c 0 -q &
taskset -c 2 mausezahn vx0 -a own -b 00:11:22:33:44:55 -c 0 -q &
📍 영향받는 시스템
패치가 적용되지 않은 vxlan 기능을 포함한 Linux 커널 버전 (6.13-rc7 근처 개발 버전 및 그 이전 계열)
⚔️ 공격 벡터
로컬 사용자가 vxlan 인터페이스에 대해 동시에 대량의 패킷 전송을 유발해 데이터 레이스를 일으키는 방식이며, 주된 영향은 비정상 동작이나 불안정성입니다.
🛡️ 대응 방법
배포판 제공 보안 업데이트 또는 수정 커밋이 포함된 최신 Linux 커널로 업데이트하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전이 배포판의 수정 패치가 포함된 버전인지 벤더 보안 공지나 changelog(예: apt changelog linux-image-$(uname -r))에서 CVE-2025-38037 항목을 확인하며, 해당 수정이 없다면 취약할 수 있습니다.