В ядре Linux устранена следующая уязвимость:
net/sched: cls_flow: не раскрывать свернутые указатели ядра
Классификатор потока возвращается к addr_fold() для отсутствующих полей.
из заголовков пакетов. В режиме карты пользовательское пространство управляет маской, xor, rshift,
сложение и делитель, и может наблюдать полученный класс через класс
статистика. Это позволяет классификатору tc в пространстве имен пользователя/сети
восстановить 32-битное свернутое значение skb->sk, skb_dst() или skb_nfct().
Приведите стандартные методы ядра для хеширования указателей и замените Свертывание XOR с помощью сифаша с ключом (который криптографически безопасен)
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_flow: Dont expose folded kernel pointers The flow classifier falls back to addr_fold() for fields that are missing from packet headers. In map mode, userspace controls mask, xor, rshift, addend and divisor, and can observe the resulting classid through class statistics. This allows a tc classifier in a user/network namespace to recover the 32-bit folded value of skb->sk, skb_dst() or skb_nfct(). Align with standard kernel practices for pointer hashing and replace the XOR folding with a keyed siphash (which is cryptographically secure)