🔍 CVE-2025-38723

5.5
CVSS Score
MEDIUM
2025-09-04
2026-10-19 21:10
✅ 완료

🇰🇷 한글 설명

Linux 커널 LoongArch BPF 컴파일러에서 tailcall 점프 오프셋 계산 오류로 인해 음수 오프셋이 생성되어 무한 루프 및 CPU 소프트 락업을 유발합니다. BPF JIT 컴파일의 추가 패스에서 초기화 건너뜀으로 인해 offset 값이 -1로 유지되는 근본 원인입니다.

💡 쉬운 설명

LoongArch 리눅스 커널의 BPF 기능에서 프로그램 분기 위치 계산이 잘못되어 CPU가 같은 위치를 반복 실행하는 문제입니다. 특정 BPF 프로그램 실행 시 시스템이 응답하지 않을 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: LoongArch: BPF: Fix jump offset calculation in tailcall The extra pass of bpf_int_jit_compile() skips JIT context initialization which essentially skips offset calculation leaving out_offset = -1, so the jmp_offset in emit_bpf_tail_call is calculated by "#define jmp_offset (out_offset - (cur_offset))" is a negative number, which is wrong. The final generated assembly are as follow. 54: bgeu $a2, $t1, -8 # 0x0000004c 58: addi.d $a6, $s5, -1 5c: bltz $a6, -16 # 0x0000004c 60: alsl.d $t2, $a2, $a1, 0x3 64: ld.d $t2, $t2, 264 68: beq $t2, $zero, -28 # 0x0000004c Before apply this patch, the follow test case will reveal soft lock issues. cd tools/testing/selftests/bpf/ ./test_progs --allow=tailcalls/tailcall_bpf2bpf_1 dmesg: watchdog: BUG: soft lockup - CPU#2 stuck for 26s! [test_progs:25056]

📍 영향받는 시스템

LoongArch 아키텍처 Linux 커널 (BPF tailcall 기능 사용하는 모든 버전)

⚔️ 공격 벡터

로컬 사용자가 악의적인 eBPF 프로그램(tailcall 포함)을 로드하여 CPU 소프트 락업 유발

🛡️ 대응 방법

영향받는 Linux 커널에 BPF tailcall 점프 오프셋 계산 패치 적용

🔧 검증 코드

loongarch 아키텍처가 표시되면 패치 적용 필요, 다른 아키텍처면 영향 없음

Shell / Script
uname -m | grep -q loongarch && echo 'Vulnerable architecture' || echo 'Safe architecture'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel