В ядре Linux устранена следующая уязвимость:
net: ipv6: очистить результат подавленного правила fib6
fib6_rule_suppress() удаляет подавленный маршрут с помощью ip6_rt_put_flags(),
но оставляет res->rt6, указывающим на выпущенный rt6_info. Если ни одно более позднее правило не предоставляет замену, fib6_rule_lookup() все равно видит
res.rt6 и возвращает устаревшее dst вызывающей стороне. Подавляющее правило может
поэтому пропустите освобожденный маршрут обратно в rt6_lookup(), а следующий put
вызывает rcuref_put_slowpath() из dst_release().
Очистите res->rt6 при подавлении маршрута, чтобы подавленные запросы не выполнялись. до нулевого dst вместо повторного использования выпущенного.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: net: ipv6: clear suppressed fib6 rule result fib6_rule_suppress() drops a suppressed route with ip6_rt_put_flags(), but leaves res->rt6 pointing at the released rt6_info. If no later rule supplies a replacement, fib6_rule_lookup() still sees res.rt6 and returns that stale dst to its caller. A suppressing rule can therefore leak a released route back to rt6_lookup(), and the next put hits rcuref_put_slowpath() from dst_release(). Clear res->rt6 when suppressing the route so suppressed lookups fall through to the null dst instead of reusing the released one.
Характеристики атаки
Последствия
Строка CVSS v3.1