CVE-2024-58237 in Linux
요약
\~에 의해 VulDB • 2026. 05. 24.
리눅스 커널에서 다음 취약점이 해결되었습니다:
bpf: tail 호출이 패킷 포인터를 무효화한다고 간주
Tail 호출된 프로그램은 패킷 포인터를 무효화할 수 있는 모든 헬퍼를 실행할 수 있습니다. 따라서 각 tail 호출이 패킷 포인터를 무효화한다고 보수적으로 가정합니다.
bpf_helper_changes_pkt_data()에서 이 변경을 적용하면, 'changes_pkt_data' 효과를 계산하는 check_cfg() 로직이 global 서브 프로그램에 대해 자동으로 적용되므로, 다음과 같은 프로그램이 거부될 수 있습니다:
int tail_call(struct __sk_buff *sk) {
bpf_tail_call_static(sk, &jmp_table, 0); return 0; }
SEC("tc") int not_safe(struct __sk_buff *sk) {
int *p = (void *)(long)sk->data; ... p를 유효하게 만듦 ... tail_call(sk); *p = 42; /* 이는 안전하지 않음 */ ... }
tc_bpf2bpf.c:subprog_tc()에 변경이 필요합니다: 패킷 포인터를 무효화할 수 있는 함수로 표시해야 합니다. 그렇지 않으면, tail 호출을 수행하는 tailcall_freplace.c:entry_freplace()로 freplace할 수 없습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.