CVE-2026-74338 in Linux
요약
\~에 의해 VulDB • 2026. 08. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다:
bpf: 로드 시 수면 가능(sleepable) BPF_LSM_CGROUP 프로그램을 거부함
cgroup shim은 rcu_read_lock_dont_migrate() 하에서 실행되므로, 해당 위치에 어떤 수면 가능한 BPF 프로그램도 연결해서는 안 됩니다. LSM cgroup 부착을 대상으로 하는 수면 가능한 BPF 프로그램의 로드 시도를 명시적으로 거부하도록 검증기(verifier)에 지원을 추가합니다.
이 수정 없이 방금 열기(file_open)에 부착되고 bpf_get_dentry_xattr() 호출 시 BPF_F_SLEEPABLE 플래그가 설정된 BPF_LSM_CGROUP 프로그램을 사용하면 다음과 같은 스플래트(splat, 커널 패닉 또는 경고 메시지)가 발생합니다:
BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1567 in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 34317, name: load preempt_count: 0, expected: 0 RCU nest depth: 2, expected: 0 Call Trace: down_read+0x76/0x480 ext4_xattr_get+0x11f/0x700 __vfs_getxattr+0xf0/0x150 bpf_get_dentry_xattr+0xbb/0xf0 bpf_prog_e76a298dac9218c6_test_open+0x6a/0x85 __cgroup_bpf_run_lsm_current+0x326/0x840 bpf_trampoline_6442534646+0x62/0x14d security_file_open+0x34/0x60 do_dentry_open+0x340/0x1260 vfs_open+0x7a/0x440 path_openat+0x1bac/0x30a0
libbpf는 lsm_cgroup를 제외한 모든 수면 가능한 프로그램 유형에 대해 .s 접미사가 붙은 섹션 변형(section variant)을 제공합니다. 이는 per-cgroup LSM 프로그램이 비수면 가능(non-sleepable) 컨텍스트에서만 실행되도록 의도되었음을 반영합니다.
위의 스플래트는 bpf(2)를 직접 사용하여 libbpf의 우회(bypassing)를 통해 얻은 것입니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.