Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Linux Π³ΠΎΡΠΎΠ²ΠΈΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ zero daim ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° AF_ALG Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² SKCIPHER ΠΈ AEAD. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ cryptodev ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π² ΠΎΠΊΠ½ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Linux 7.2, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡΡΡ Π² ΠΈΡΠ½Π΅. ΠΠΎΠ²ΠΎΠ΄ΠΎΠΌ ΡΡΠ°Π»ΠΈ ΡΠ°ΡΡΡΡΠΈΠ΅ ΠΎΠΏΠ°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠΊΡΡΠ³ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ zero-copy-ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π² ΡΠ΄ΡΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅ Linux.
AF_ALG Yog ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ API ΡΠ΄ΡΠ° Linux. Π§Π΅ΡΠ΅Π· Π½Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ², Ρ ΡΡΠ΅ΠΉ ΠΈ AEAD-Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π² ΡΠ΄ΡΠ΅ ΠΊΠ°ΠΊ ΠΊ ΡΠΎΠΊΠ΅ΡΠ°ΠΌ. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Linux ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΄Π»Ρ AF_ALG zero-copy-ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΡΠ΅Π· splice() ΠΈ vmsplice(), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΄ΡΠΎ ΡΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ΄ΡΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ AF_ALG ΡΠ°ΠΊΠΎΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π΅ ΡΡΠΎΠ»Ρ Π²Π°ΠΆΠ΅Π½, Π° ΡΠΈΡΠΊΠΈ β ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΈ. ΠΠ²ΡΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Linux ΠΡΠΈΠΊ ΠΠΈΠ³Π³Π΅ΡΡ ΠΈΠ· Google, taw tes qhia, ΡΡΠΎ zero-copy ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°Π΄ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ page cache ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ° su, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ TOCTOU-ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ Π½Π°Π΄ Π½Π΅ΠΉ.
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅-Π²ΡΠ²ΠΎΠ΄Π΅, Π² AF_ALG Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Π‘Π°ΠΌ AF_ALG, ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ΅ΠΉΡΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠ°Π΄ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ iwd, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡ Π½Π΅ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ AF_ALG Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ ΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΠΊΡΠΈΠΏΡΠΎΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΡΠΌ, Π½ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π΄Π»Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ Π½Π΅ ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ splice() ΠΈΠ»ΠΈ sendfile() Π΄Π»Ρ AF_ALG. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«ΠΌΡΠ³ΠΊΠ°Ρ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ°Β» ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² AF_ALG-Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· splice() ΠΈ sendfile() ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΡΠ΄ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡΡΡ, Π·Π°ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ API ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ Π»ΠΎΠΌΠ°Π΅ΡΡΡ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΊΠ° zero-copy ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· skcipher ΠΈ aead. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ ΡΠΈΠΏΠ° hash Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠΉ. Π ΠΊΠΎΠ½ΡΠ΅ Π°ΠΏΡΠ΅Π»Ρ Π±ΡΠ»Π° ΡΠ°ΡΠΊΡΡΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Copy Fail (CVE-2026-31431) Π² algif_aead, ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΡΠΈΠΏΡΠΎΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ AF_ALG. ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΡΠ²ΡΠ·ΠΊΠ° AF_ALG, splice() ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ AEAD-ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π°ΡΡ page cache, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ setuid-Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ°ΠΌ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π΄ΠΎ root.
Tsos Copy Fail Π±ΡΠ»ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠ΅ΠΉ 2017 Π³ΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ΅ΠΉ AEAD-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Β«Π½Π° ΠΌΠ΅ΡΡΠ΅Β»; ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠ΅ΡΠ΅Π· splice() Π² AF_ALG ΡΠ΄ΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π΅ Ρ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π° ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ page cache. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ, ΠΌΠΎΠ³Π»Π° ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π² Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΌ scatterlist.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ zero-copy ΠΈΠ· AF_ALG Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΠΌ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. Π‘ΠΊΠΎΡΠ΅Π΅ ΡΡΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ±ΡΠ°ΡΡ ΡΠ΅Π»ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΠ· ΠΌΠ°Π»ΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ UAPI, Π³Π΄Π΅ Π²ΡΠΈΠ³ΡΡΡ ΠΎΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ. ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ; Π΄Π»Ρ ΡΠ΅Π΄ΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ AF_ALG ΡΠ΅ΡΠ΅Π· splice() ΠΈΠ»ΠΈ sendfile(), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΎΡΠ°Π΄ΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·-Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Tau qhov twg los: linux.org.ru ua
