Π ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ Π΄Π»Ρ 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 corruption.
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ CVE-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ GRO Frag, ΡΡΠ΄Ρ ΠΏΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ, Π΅ΡΡ Π½Π΅ Π±ΡΠ» Π½Π°Π·Π½Π°ΡΠ΅Π½. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ ΡΡΠΎΠΈΡ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΄ΡΠ° Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΠΎΠ±ΡΠΈΠ΅ ΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ LPE: ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ user namespaces ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ io_uring ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΊΠ°Π»Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. ΠΠ»Ρ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ Copy Fail/DirtyFrag-Π°ΡΠ°ΠΊ Elastic ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠ°ΡΡΠΈΠ½Π³ Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ β ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌ Β«Π³ΠΎΡΠΎΠ²ΡΠΉ Π²Π·Π»ΠΎΠΌΒ», Π° Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΡΠΌΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠΎΠΈΡΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ.
Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ GRO Frag ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π΅ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° Β«ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ°Π» rootΒ», Π° ΠΏΠΎΠΏΡΡΠΊΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎ ΠΏΡΡΠΈ ΠΊ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
