CVE-2026-98441 in Linux
Сводка
по VulDB • 19.10.2026
В ядре Linux была устранена следующая уязвимость:
net/sched: act_ct: избегать модификации общих неподтвержденных записей ct (conntrack)
В случае, когда skb с неподтвержденной записью ct клонируется, мы можем в итоге обработать оба пакета заново, но с разными наборами расширений.
Последовательность событий следующая:
1. Первый клон хочет выполнить коммит и запускает помощников (helpers), которые настраивают указатель расширения для списка ожиданий (expectation list). 2. Затем он теряет подтверждение, оставляя запись неподтвержденной. 3. Второй клон теперь пытается установить метки или выполнить NAT и добавляет новое расширение, что приводит к повреждению указателя в списке ожиданий, вызывая состояние Use-After-Free (UAF) на пути уничтожения позже.
Хотя это возможно спровоцировать, не должно существовать практических сетевых конвейеров, где требуется обработка обоих клонов без модификаций в одной и той же зоне. Поэтому давайте просто сбросим запись в случае, если по какой-то причине мы получили skb с общей записью ct. Это не влияет на какие-либо известные варианты использования, но предотвращает потенциальные проблемы, связанные с совместным использованием и модификацией неподтвержденной записи ct.
В отличие от модуля openvswitch, act_ct позволяет выполнять NAT без коммита. Изменение этого поведения привело бы к нарушению uAPI (пользовательского интерфейса API). Поэтому act_ct должен сбрасывать состояние при выполнении NAT независимо от флага commit, чтобы избежать повторного выделения пространства для расширений. Однако это не меняет картину в случае разумных сетевых сценариев, так как нет необходимости обрабатывать один и тот же пакет дважды (до и после клонирования) через conntrack без изменений заголовков пакета или зоны и без коммита.
Тег fixes указывает на момент внедрения помощников (helpers), поскольку именно они являются основной причиной возникновения UAF при совместном использовании данных.
If you want to get best quality of vulnerability data, you may have to visit VulDB.