🇰🇷 한글 설명
Linux 커널의 LoongArch 아키텍처에서 BPF 트램펄린 구현이 커널 모듈 함수 추적과 호환되지 않는 취약점이 발견되었습니다. 이로 인해 커널 락업(Lockup)이 발생하거나 WireGuard와 같은 핵심 모듈의 네트워크 트래픽이 중단되는 심각한 문제가 발생할 수 있습니다.
💡 쉬운 설명
LoongArch CPU를 사용하는 시스템에서 특정 보안/모니터링 기능(BPF)을 사용할 때 컴퓨터가 멈추거나 인터넷 연결이 끊길 수 있는 오류가 있습니다. 이를 방지하기 위해 해당 기능을 일시적으로 차단하는 패치가 적용되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
LoongArch: BPF: Disable trampoline for kernel module function trace
The current LoongArch BPF trampoline implementation is incompatible
with tracing functions in kernel modules. This causes several severe
and user-visible problems:
* The `bpf_selftests/module_attach` test fails consistently.
* Kernel lockup when a BPF program is attached to a module function [1].
* Critical kernel modules like WireGuard experience traffic disruption
when their functions are traced with fentry [2].
Given the severity and the potential for other unknown side-effects, it
is safest to disable the feature entirely for now. This patch prevents
the BPF subsystem from allowing trampoline attachments to kernel module
functions on LoongArch.
This is a temporary mitigation until the core issues in the trampoline
code for kernel module handling can be identified and fixed.
[root@fedora bpf]# ./test_progs -a module_attach -v
bpf_testmod.ko is already unloaded.
Loading bpf_testmod.ko...
Successfully loaded bpf_testmod.ko.
test_module_attach:PASS:skel_open 0 nsec
test_module_attach:PASS:set_attach_target 0 nsec
test_module_attach:PASS:set_attach_target_explicit 0 nsec
test_module_attach:PASS:skel_load 0 nsec
libbpf: prog 'handle_fentry': failed to attach: -ENOTSUPP
libbpf: prog 'handle_fentry': failed to auto-attach: -ENOTSUPP
test_module_attach:FAIL:skel_attach skeleton attach failed: -524
Summary: 0/0 PASSED, 0 SKIPPED, 1 FAILED
Successfully unloaded bpf_testmod.ko.
[1]: https://lore.kernel.org/loongarch/CAK3+h2wDmpC-hP4u4pJY8T-yfKyk4yRzpu2LMO+C13FMT58oqQ@mail.gmail.com/
[2]: https://lore.kernel.org/loongarch/CAK3+h2wYcpc+OwdLDUBvg2rF9rvvyc5amfHT-KcFaK93uoELPg@mail.gmail.com/
📍 영향받는 시스템
LoongArch 아키텍처를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
직접적인 외부 공격보다는 특정 BPF 프로그램을 커널 모듈 함수에 연결할 때 시스템 장애가 유발되는 방식입니다.
🛡️ 대응 방법
LoongArch BPF 트램펄린 기능을 비활성화하는 커널 패치를 적용해야 합니다.
🔧 검증 코드
출력 결과에 loongarch가 포함되어 있는지 확인하여 해당 아키텍처 사용 여부를 판단합니다.