В ядре Linux устранена следующая уязвимость:
ip_tunnel: адаптировать iptunnel_xmit_stats() к NETDEV_PCPU_STAT_DSTATS
Обвиняемые коммиты забыли, что vxlan/geneve использует udp_tunnel[6]_xmit_skb(), который
вызовите iptunnel_xmit_stats().
iptunnel_xmit_stats() предполагал, что туннели используют только
NETDEV_PCPU_STAT_TSTATS.
Смещение @syncp в pcpu_sw_netstats и pcpu_dstats отличается.
32-битные ядра либо будут повреждены, либо зависнут, если синхронизация
последовательность была перезаписана.
Этот патч также перемещает pcpu_stat_type ближе к dev->{t,d}stats, чтобы избежать
возможная ошибка в строке кэша, поскольку iptunnel_xmit_stats() необходимо ее прочитать.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: ip_tunnel: adapt iptunnel_xmit_stats() to NETDEV_PCPU_STAT_DSTATS Blamed commits forgot that vxlan/geneve use udp_tunnel[6]_xmit_skb() which call iptunnel_xmit_stats(). iptunnel_xmit_stats() was assuming tunnels were only using NETDEV_PCPU_STAT_TSTATS. @syncp offset in pcpu_sw_netstats and pcpu_dstats is different. 32bit kernels would either have corruptions or freezes if the syncp sequence was overwritten. This patch also moves pcpu_stat_type closer to dev->{t,d}stats to avoid a potential cache line miss since iptunnel_xmit_stats() needs to read it.