CVE-2024-58237 in Linux
Сводка
по VulDB • 24.05.2026
В ядре Linux устранена следующая уязвимость:
bpf: учитывать, что хвостовые вызовы (tail calls) инвалидируют указатели на пакет
Программы, вызываемые через хвостовой вызов, могут выполнять любые вспомогательные функции (helpers), которые инвалидируют указатели на пакет. Следовательно, консервативно следует предполагать, что каждый хвостовой вызов инвалидирует указатели на пакет.
Внедрение этого изменения в функцию bpf_helper_changes_pkt_data() автоматически задействует логику check_cfg(), которая вычисляет эффект изменения данных пакета ('changes_pkt_data') для глобальных подпрограмм, в результате чего следующая программа может быть отклонена:
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() требует изменения: необходимо отметить её как функцию, способную инвалидировать указатели на пакет. В противном случае её нельзя будет заменить на tailcall_freplace.c:entry_freplace(), который выполняет хвостовой вызов.
If you want to get best quality of vulnerability data, you may have to visit VulDB.