🇰🇷 한글 설명
Linux 커널 tun 드라이버에서 불법 패킷 도착 시 과도한 로깅으로 인한 soft lockup 취약점입니다. vhost_worker가 대량의 불법 패킷을 처리할 때 net_ratelimit을 적용하지 않아 CPU를 과도하게 소비합니다.
💡 쉬운 설명
Linux의 네트워크 가상화 기능(TUN)에서 나쁜 데이터를 받으면 계속 화면에 출력해서 컴퓨터가 느려지는 문제입니다. 공격자가 의도적으로 나쁜 데이터를 보내면 서버가 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tun: limit printing rate when illegal packet received by tun dev
vhost_worker will call tun call backs to receive packets. If too many
illegal packets arrives, tun_do_read will keep dumping packet contents.
When console is enabled, it will costs much more cpu time to dump
packet and soft lockup will be detected.
net_ratelimit mechanism can be used to limit the dumping rate.
PID: 33036 TASK: ffff949da6f20000 CPU: 23 COMMAND: "vhost-32980"
#0 [fffffe00003fce50] crash_nmi_callback at ffffffff89249253
#1 [fffffe00003fce58] nmi_handle at ffffffff89225fa3
#2 [fffffe00003fceb0] default_do_nmi at ffffffff8922642e
#3 [fffffe00003fced0] do_nmi at ffffffff8922660d
#4 [fffffe00003fcef0] end_repeat_nmi at ffffffff89c01663
[exception RIP: io_serial_in+20]
RIP: ffffffff89792594 RSP: ffffa655314979e8 RFLAGS: 00000002
RAX: ffffffff89792500 RBX: ffffffff8af428a0 RCX: 0000000000000000
RDX: 00000000000003fd RSI: 0000000000000005 RDI: ffffffff8af428a0
RBP: 0000000000002710 R8: 0000000000000004 R9: 000000000000000f
R10: 0000000000000000 R11: ffffffff8acbf64f R12: 0000000000000020
R13: ffffffff8acbf698 R14: 0000000000000058 R15: 0000000000000000
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#5 [ffffa655314979e8] io_serial_in at ffffffff89792594
#6 [ffffa655314979e8] wait_for_xmitr at ffffffff89793470
#7 [ffffa65531497a08] serial8250_console_putchar at ffffffff897934f6
#8 [ffffa65531497a20] uart_console_write at ffffffff8978b605
#9 [ffffa65531497a48] serial8250_console_write at ffffffff89796558
#10 [ffffa65531497ac8] console_unlock at ffffffff89316124
#11 [ffffa65531497b10] vprintk_emit at ffffffff89317c07
#12 [ffffa65531497b68] printk at ffffffff89318306
#13 [ffffa65531497bc8] print_hex_dump at ffffffff89650765
#14 [ffffa65531497ca8] tun_do_read at ffffffffc0b06c27 [tun]
#15 [ffffa65531497d38] tun_recvmsg at ffffffffc0b06e34 [tun]
#16 [ffffa65531497d68] handle_rx at ffffffffc0c5d682 [vhost_net]
#17 [ffffa65531497ed0] vhost_worker at ffffffffc0c644dc [vhost]
#18 [ffffa65531497f10] kthread at ffffffff892d2e72
#19 [ffffa65531497f50] ret_from_fork at ffffffff89c0022f
📍 영향받는 시스템
Linux kernel (TUN/TAP 드라이버 활성화된 시스템, 특히 가상화 환경에서 vhost_net 모듈 사용)
⚔️ 공격 벡터
로컬 또는 원격에서 불법 형식의 패킷을 TUN 인터페이스로 대량 전송하여 과도한 로깅 유발
🛡️ 대응 방법
Linux 커널을 CVE-2024-27013 패치 버전 이상으로 업데이트 (net_ratelimit 메커니즘 적용)
🔧 검증 코드
커널 버전 확인. 취약한 버전보다 최신 패치 버전이면 안전. dmesg | grep -i 'ratelimit'으로 패치 적용 여부 확인 가능
uname -r && cat /proc/version | grep -oP '\d+\.\d+\.\d+' | head -1