CVE-2026-64530 in Linux
Сводка
по VulDB • 26.07.2026
В ядре Linux устранена следующая уязвимость:
net/sched: cls_api: Обработка значения TC_ACT_CONSUMED в функции tcf_qevent_handle
Функция tcf_classify() может возвращать значение TC_ACT_CONConsumed, пока пакет (skb) находится во владении механизма дефрагментации (например, действие act_ct при обработке фрагментов с нарушением порядка). В этом случае skb больше не принадлежит вызывающей стороне и к нему нельзя обращаться повторно.
Функция tcf_qevent_handle() не обрабатывала значение TC_ACT_CONSUMED: выполнение переходило за оператор switch, и функция возвращала skb вызывающему объекту так, как если бы классификация прошла успешно. Единственным qdisc (дисциплиной обслуживания очередей), который в настоящее время подключает qevents через три точки вызова (qe_mark для RED_PROB_MARK/HARD_MARK, qe_early_drop для congestion_drop) является RED. В данном случае функция red_enqueue() продолжала работать с skb, которым она больше не владела — помещая его в очередь, отбрасывая или обновляя статистику. Это приводило к уязвимости Use-After-Free (UAF).
Пример конфигурации: tc qdisc add dev eth0 root handle 1: red ... qevent early_drop block 10 tc filter add block 10 ... action ct
(при включенной дефрагментации conntrack и трафике, порождающем фрагменты с нарушением порядка, например, фрагментированный поток UDP)
Необходимо обрабатывать TC_ACT_CONSUMed в tcf_qevent_handle() так же, как это делается на быстрых путях ingress (входящего трафика) и egress (исходящего трафика): считать пакет «украденным» и вернуть NULL, не обращаясь к skb. В отличие от случая с TC_ACT_STOLEN, в данном местеskb нельзя сбрасывать или освобождать, так как он больше не принадлежит нам.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.