🔍 CVE-2026-43249

8.8
CVSS Score
HIGH
2026-05-06
2026-10-21 13:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Xen 9p 파일시스템에서 발생하는 이중해제(double-free) 취약점으로, xenwatch 스레드가 다른 백엔드 변경 알림과 경합하여 xen_9pfs_front_free() 함수를 두 번 호출하면서 일반 보호 오류(general protection fault)를 유발합니다. 동기화 메커니즘이 없어서 발생하며, 임계 영역을 보호하여 한 호출자만 프론트엔드 상태를 해제하도록 수정됩니다.

💡 쉬운 설명

Linux 커널의 Xen 가상화 환경에서 9p 파일시스템 정리 코드가 동시에 여러 번 실행되어 같은 메모리를 두 번 해제하는 문제입니다. 이로 인해 시스템 충돌이 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: 9p/xen: protect xen_9pfs_front_free against concurrent calls The xenwatch thread can race with other back-end change notifications and call xen_9pfs_front_free() twice, hitting the observed general protection fault due to a double-free. Guard the teardown path so only one caller can release the front-end state at a time, preventing the crash. This is a fix for the following double-free: [ 27.052347] Oops: general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6b6b: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI [ 27.052357] CPU: 0 UID: 0 PID: 32 Comm: xenwatch Not tainted 6.18.0-02087-g51ab33fc0a8b-dirty #60 PREEMPT(none) [ 27.052363] RIP: e030:xen_9pfs_front_free+0x1d/0x150 [ 27.052368] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 41 55 41 54 55 48 89 fd 48 c7 c7 48 d0 92 85 53 e8 cb cb 05 00 48 8b 45 08 48 8b 55 00 <48> 3b 28 0f 85 f9 28 35 fe 48 3b 6a 08 0f 85 ef 28 35 fe 48 89 42 [ 27.052377] RSP: e02b:ffffc9004016fdd0 EFLAGS: 00010246 [ 27.052381] RAX: 6b6b6b6b6b6b6b6b RBX: ffff88800d66e400 RCX: 0000000000000000 [ 27.052385] RDX: 6b6b6b6b6b6b6b6b RSI: 0000000000000000 RDI: 0000000000000000 [ 27.052389] RBP: ffff88800a887040 R08: 0000000000000000 R09: 0000000000000000 [ 27.052393] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888009e46b68 [ 27.052397] R13: 0000000000000200 R14: 0000000000000000 R15: ffff88800a887040 [ 27.052404] FS: 0000000000000000(0000) GS:ffff88808ca57000(0000) knlGS:0000000000000000 [ 27.052408] CS: e030 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 27.052412] CR2: 00007f9714004360 CR3: 0000000004834000 CR4: 0000000000050660 [ 27.052418] Call Trace: [ 27.052420] <TASK> [ 27.052422] xen_9pfs_front_changed+0x5d5/0x720 [ 27.052426] ? xenbus_otherend_changed+0x72/0x140 [ 27.052430] ? __pfx_xenwatch_thread+0x10/0x10 [ 27.052434] xenwatch_thread+0x94/0x1c0 [ 27.052438] ? __pfx_autoremove_wake_function+0x10/0x10 [ 27.052442] kthread+0xf8/0x240 [ 27.052445] ? __pfx_kthread+0x10/0x10 [ 27.052449] ? __pfx_kthread+0x10/0x10 [ 27.052452] ret_from_fork+0x16b/0x1a0 [ 27.052456] ? __pfx_kthread+0x10/0x10 [ 27.052459] ret_from_fork_asm+0x1a/0x30 [ 27.052463] </TASK> [ 27.052465] Modules linked in: [ 27.052471] ---[ end trace 0000000000000000 ]---

📍 영향받는 시스템

Linux kernel 6.18 이전 버전 중 CONFIG_9P_FS_XEN이 활성화된 Xen 가상화 환경의 시스템

⚔️ 공격 벡터

로컬 공격자가 Xen 환경에서 백엔드 상태 변경 알림을 트리거하여 경합 조건을 의도적으로 유발

🛡️ 대응 방법

Linux 커널을 6.18 이후의 보안 패치가 적용된 버전으로 업그레이드하거나 상호 배제 메커니즘(mutex) 패치 적용

🔧 검증 코드

CONFIG_9P_FS_XEN=y 또는 =m이 출력되면 Xen 9p가 활성화되어 있으므로, uname -r로 커널 버전을 확인하여 6.18 미만이면 취약합니다.

Shell / Script
grep -E "CONFIG_9P_FS_XEN=[ym]" /boot/config-$(uname -r) 2>/dev/null && echo 'Vulnerable if kernel < 6.18' || echo 'Not enabled'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel