ΠΠ° ΠΎΡΠΊΡΠΈΡΠΎ ΡΡΠ°Π½Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡ Π·Π° GRO Frag β Π»ΠΎΠΊΠ°Π»Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° GRO ΠΈ zero-copy skb Π² ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ. Π’ΠΎΡΠ½Π°ΡΠ° Π΄Π°ΡΠ° Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ ΠΎΡΠΊΡΠΈΡΠΈΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π½Π΅ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π°. ΠΠΎ ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Ρ Π΄Π²Π΅ Π΄Π°ΡΠΈ: ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° Π΅ Π±ΠΈΠ»Π° ΠΎΠ±ΡΡΠΆΠ΄Π°Π½Π° Π² ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡ ΡΠΏΠΈΡΡΠΊ netdev 20 ΠΌΠ°ΠΉ 2026 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°Π·ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π²Π΅ΡΠ΅ Π΅ Π±ΠΈΠ»Π° ΠΎΠΏΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ Π³ΠΎΠ΄Π½Π° Π·Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° page cache, Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΡ PoC Π΅ Π±ΠΈΠ» ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π½Π° GitHub Gist 22 ΠΌΠ°ΠΉ 2026 Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΎ ΡΠ΄ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈ Π²Π΅ΠΊΡΠΎΡΡΡ Π½Π° Π°ΡΠ°ΠΊΠ° ΡΡΠ΅Π· sysctl: kernel.io_uring_disabled=1. Π’ΠΎΠ·ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π·Π°Π±ΡΠ°Π½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° io_uring ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ Π½Π΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π°ΡΠ° Π³ΡΡΠΏΠ° io_uring_group; ΠΏΡΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ -1 Π΄ΠΎΡΡΡΠΏΡΡ ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ CAP_SYS_ADMIN. Π’ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΈΡΠΈΠ³Π°ΡΠΈΡ, Π° Π½Π΅ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΊΡΠΈΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡΡΠ° skb_gro_receive(): ΠΏΡΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ GRO ΡΠ΄ΡΠΎΡΠΎ Π΅ ΠΌΠΎΠΆΠ΅Π»ΠΎ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΡ zero-copy skb Π² Π΄ΡΡΠ³ skb Π±Π΅Π· ΠΊΠΎΡΠ΅ΠΊΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° zero-copy ΠΈ Π·Π½Π°ΠΊΠ° SKBFL_MANAGED_FRAG_REFS. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΡ skb Π½Π΅ Π΅ Π΄ΡΡΠΆΠ°Π» ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΡΠ»ΠΊΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½ΠΈ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ use-after-free. Π ΠΏΠ°ΡΡΠ° Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ, ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ UAF ΠΈ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ Π³ΠΎΠ΄Π΅Π½ Π·Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° page cache.
ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈΡΡ PoC ΠΎΠΏΠΈΡΠ²Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΊΠ°ΡΠΎ LPE ΠΏΡΠ΅Π· GRO managed-frag UAF Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° io_uring SEND_ZC ΠΈ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ veth. Π ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ, ΡΠ΅ ΡΠ° Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ ΡΠ΄ΡΠ°ΡΠ° Linux 6.0+, Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π½ΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½Π°Π»ΠΈΡΠ΅Π½ io_uring; Π·Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΊΠΎΠΌΠΈΡ 4db79a322db8 Ρ ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° "net: gro: donβt merge zcopy skbs".
ΠΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΡΠ°, GRO Frag ΠΏΠΎΠΏΠ°Π΄Π° Π² ΡΡΡΠΈΡ ΠΎΠΏΠ°ΡΠ΅Π½ ΠΊΠ»Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ, ΠΊΠ°ΡΠΎ Copy Fail ΠΈ Dirty Frag: Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ Ρ Π»ΠΎΠΊΠ°Π»Π΅Π½ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π΄ΠΎΡΡΡΠΏ ΡΡΠΏΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² page cache, ΡΠΎΠ΅ΡΡ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π±Π΅Π· Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»Π° Π½Π° Π΄ΠΈΡΠΊΠ°. ΠΠΎΠ΄ΠΎΠ±Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΈ, Π·Π°ΡΠΎΡΠΎ Π·Π°ΡΡΠ³Π°Ρ Π³ΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ "ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅" ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΄ΡΠΎ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π²ΠΈΠΆΠ΄Π°Ρ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ. Elastic ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠ»Π°Ρ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° root ΡΡΠ΅Π· ΠΊΠΎΡΡΠΏΡΠΈΡ Π½Π° page-cache.
ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡΠ΄Π΅Π»Π΅Π½ CVE ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π° GRO Frag, judging by Π½Π°Π»ΠΈΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π±ΠΈΠ» Π½Π°Π·Π½Π°ΡΠ΅Π½. ΠΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΌΡΡΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Ρ ΠΊΡΠΌ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΊΡΠΌ ΠΎΠ±ΡΠΈ ΠΌΠ΅ΡΠΊΠΈ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΠΊΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ LPE: ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠ΅ user namespaces ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° io_uring ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π»ΠΎΠΊΠ°Π»Π½Π° Π΅ΡΠΊΠ°Π»Π°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. ΠΠ° ΡΡΠΎΠ΄Π½ΠΈ Π°ΡΠ°ΠΊΠΈ Copy Fail/DirtyFrag, Elastic ΡΡΡΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ²Π°Π½Π΅ Ρ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°.
ΠΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ° ΡΠ°ΠΌΠΈΡΡ "Π³ΠΎΡΠΎΠ² Ρ Π°ΠΊ", Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΉΠΎΠΌΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠ°.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° GRO Frag ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π½Π΅ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π·Π°Π²ΡΡΡΠ΅Π½ ΡΠ°ΠΊΡ "ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΠ°Π½Π° root", Π° ΠΎΠΏΠΈΡ Π·Π° Π·Π°Π±Π΅Π»ΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΡΡΡ ΠΊΡΠΌ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
