เบˆเบฒเบ AF_ALG เป„เบ›เบซเบฒ Linux เบชเบณเป€เบ™เบปเบฒเบชเบนเบ™เบเบณเบฅเบฑเบ‡เบ–เบทเบเบฅเบถเบšเบญเบญเบเบเป‰เบญเบ™เป€เบซเบ”เบœเบปเบ™เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž

ะ’ ะฟะพะดัะธัั‚ะตะผะต ะบั€ะธะฟั‚ะพะณั€ะฐั„ะธะธ Linux ะณะพั‚ะพะฒะธั‚ัั ัƒะดะฐะปะตะฝะธะต ะฟะพะดะดะตั€ะถะบะธ เบชเบณเป€เบ™เบปเบฒเบชเบนเบ™ ะธะท ะธะฝั‚ะตั€ั„ะตะนัะฐ AF_ALG ะดะปั ั‚ะธะฟะพะฒ ะฐะปะณะพั€ะธั‚ะผะพะฒ SKCIPHER ะธ AEAD. ะ˜ะทะผะตะฝะตะฝะธะต ัƒะถะต ะฝะฐั…ะพะดะธั‚ัั ะฒ ะดะตั€ะตะฒะต cryptodev ะธ ะพะถะธะดะฐะตั‚ัั ะบ ะพั‚ะฟั€ะฐะฒะบะต ะฒ ะพะบะฝะพ ัะปะธัะฝะธั Linux 7.2, ะบะพั‚ะพั€ะพะต ะดะพะปะถะฝะพ ะพั‚ะบั€ั‹ั‚ัŒัั ะฒ ะธัŽะฝะต. ะŸะพะฒะพะดะพะผ ัั‚ะฐะปะธ ั€ะฐัั‚ัƒั‰ะธะต ะพะฟะฐัะตะฝะธั ะฒะพะบั€ัƒะณ ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ zero-copy-ะผะตั…ะฐะฝะธะทะผะพะฒ ะฒ ัะดั€ะต, ะพัะพะฑะตะฝะฝะพ ะฟะพัะปะต ะฝะตะดะฐะฒะฝะธั… ัƒัะทะฒะธะผะพัั‚ะตะน ะฒ ะบั€ะธะฟั‚ะพะณั€ะฐั„ะธั‡ะตัะบะพะผ ะบะพะดะต Linux.

AF_ALG - เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰ ะบ ะบั€ะธะฟั‚ะพะณั€ะฐั„ะธั‡ะตัะบะพะผัƒ API ัะดั€ะฐ Linux. ะงะตั€ะตะท ะฝะตะณะพ ะฟั€ะพะณั€ะฐะผะผั‹ ะผะพะณัƒั‚ ะพะฑั€ะฐั‰ะฐั‚ัŒัั ะบ ั€ะตะฐะปะธะทะฐั†ะธัะผ ัˆะธั„ั€ะพะฒ, ั…ััˆะตะน ะธ AEAD-ะฐะปะณะพั€ะธั‚ะผะพะฒ ะฒ ัะดั€ะต ะบะฐะบ ะบ ัะพะบะตั‚ะฐะผ. ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั Linux ะพั‚ะดะตะปัŒะฝะพ ะพะฟะธัั‹ะฒะฐะตั‚ ะดะปั AF_ALG zero-copy-ั€ะตะถะธะผ ั‡ะตั€ะตะท splice() ะธ vmsplice(), ะฟั€ะธ ะบะพั‚ะพั€ะพะผ ัะดั€ะพ ัั‚ะฐั€ะฐะตั‚ัั ะธะทะฑะตะถะฐั‚ัŒ ะปะธัˆะฝะตะณะพ ะบะพะฟะธั€ะพะฒะฐะฝะธั ะดะฐะฝะฝั‹ั… ะฒ ะฟะฐะผัั‚ัŒ ัะดั€ะฐ.

ะŸั€ะพะฑะปะตะผะฐ ะฒ ั‚ะพะผ, ั‡ั‚ะพ ะฒ ัะปัƒั‡ะฐะต AF_ALG ั‚ะฐะบะพะน ะฒั‹ะธะณั€ั‹ัˆ ะฒ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะพะบะฐะทะฐะปัั ะฝะต ัั‚ะพะปัŒ ะฒะฐะถะตะฝ, ะฐ ั€ะธัะบะธ โ€” ัะปะธัˆะบะพะผ ะฒะตะปะธะบะธ. ะะฒั‚ะพั€ ะธะทะผะตะฝะตะฝะธั, ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบ ะบั€ะธะฟั‚ะพะณั€ะฐั„ะธั‡ะตัะบะพะน ะฟะพะดัะธัั‚ะตะผั‹ Linux ะญั€ะธะบ ะ‘ะธะณะณะตั€ั ะธะท Google, เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™, ั‡ั‚ะพ 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 ะธ เปเบญเบ”. ะŸะพะดะดะตั€ะถะบะฐ ะดะปั ั‚ะธะฟะฐ hash ะฑัƒะดะตั‚ ั€ะฐััะผะฐั‚ั€ะธะฒะฐั‚ัŒัั ะพั‚ะดะตะปัŒะฝะพ.

ะšะพะฝั‚ะตะบัั‚ ัƒ ะธะทะผะตะฝะตะฝะธั ะฝะตะฟั€ะธัั‚ะฝั‹ะน. ะ’ ะบะพะฝั†ะต ะฐะฟั€ะตะปั ะฑั‹ะปะฐ ั€ะฐัะบั€ั‹ั‚ะฐ ัƒัะทะฒะธะผะพัั‚ัŒ Copy Fail (CVE-2026-31431) ะฒ algif_aead, ั‚ะพ ะตัั‚ัŒ ะบะฐะบ ั€ะฐะท ะฒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะพะผ ะบั€ะธะฟั‚ะพะธะฝั‚ะตั€ั„ะตะนัะต AF_ALG. ะ˜ััะปะตะดะพะฒะฐั‚ะตะปะธ ะฟะพะบะฐะทะฐะปะธ, ั‡ั‚ะพ ัะฒัะทะบะฐ AF_ALG, splice() ะธ ะพัะพะฑะตะฝะฝะพัั‚ะตะน AEAD-ะพะฑั€ะฐะฑะพั‚ะบะธ ะฟะพะทะฒะพะปัะปะฐ ะฝะตะฟั€ะธะฒะธะปะตะณะธั€ะพะฒะฐะฝะฝะพะผัƒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŽ ะฟะพะฒั€ะตะถะดะฐั‚ัŒ page cache, ะฒ ั‚ะพะผ ั‡ะธัะปะต ัั‚ั€ะฐะฝะธั†ั‹, ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะธะต setuid-ะฑะธะฝะฐั€ะฝะธะบะฐะผ, ะธ ะฟะพะปัƒั‡ะฐั‚ัŒ ะฟะพะฒั‹ัˆะตะฝะธะต ะฟั€ะธะฒะธะปะตะณะธะน ะดะพ root.


เบฎเบนเบšเบฅเบฑเบเบชเบฐเบ™เบฐ Copy Fail ะฑั‹ะปะพ ัะฒัะทะฐะฝะพ ั ะพะฟั‚ะธะผะธะทะฐั†ะธะตะน 2017 ะณะพะดะฐ, ะฟะตั€ะตะฒะตะดัˆะตะน AEAD-ะพะฟะตั€ะฐั†ะธะธ ะฝะฐ ะพะฑั€ะฐะฑะพั‚ะบัƒ ยซะฝะฐ ะผะตัั‚ะตยป; ะฟั€ะธ ะฟะตั€ะตะดะฐั‡ะต ั„ะฐะนะปะฐ ั‡ะตั€ะตะท splice() ะฒ AF_ALG ัะดั€ะพ ั€ะฐะฑะพั‚ะฐะปะพ ะฝะต ั ะบะพะฟะธะตะน, ะฐ ัะพ ััั‹ะปะบะฐะผะธ ะฝะฐ ัั‚ั€ะฐะฝะธั†ั‹ page cache. ะ’ ั€ะตะทัƒะปัŒั‚ะฐั‚ะต ั‡ะฐัั‚ัŒ ะดะฐะฝะฝั‹ั…, ะบะพั‚ะพั€ั‹ะต ัั‡ะธั‚ะฐะปะธััŒ ั‚ะพะปัŒะบะพ ะฒั…ะพะดะฝั‹ะผะธ, ะผะพะณะปะฐ ะพะบะฐะทะฐั‚ัŒัั ะฒ ะทะฐะฟะธัั‹ะฒะฐะตะผะพะผ scatterlist.

ะฃะดะฐะปะตะฝะธะต zero-copy ะธะท AF_ALG ะฝะต ัะฒะปัะตั‚ัั ั‚ะพั‡ะตั‡ะฝั‹ะผ ะธัะฟั€ะฐะฒะปะตะฝะธะตะผ ั‚ะพะปัŒะบะพ ะพะดะฝะพะน ัƒัะทะฒะธะผะพัั‚ะธ. ะกะบะพั€ะตะต ัั‚ะพ ะฟะพะฟั‹ั‚ะบะฐ ัƒะฑั€ะฐั‚ัŒ ั†ะตะปั‹ะน ะบะปะฐัั ั€ะธัะบะพะฒะฐะฝะฝั‹ั… ัั†ะตะฝะฐั€ะธะตะฒ ะธะท ะผะฐะปะพะธัะฟะพะปัŒะทัƒะตะผะพะณะพ UAPI, ะณะดะต ะฒั‹ะธะณั€ั‹ัˆ ะพั‚ ะพะฟั‚ะธะผะธะทะฐั†ะธะธ ะฝะต ะพะฟั€ะฐะฒะดั‹ะฒะฐะตั‚ ัะปะพะถะฝะพัั‚ัŒ ะธ ะฟะพั‚ะตะฝั†ะธะฐะปัŒะฝั‹ะต ะฟะพัะปะตะดัั‚ะฒะธั. ะ”ะปั ะพะฑั‹ั‡ะฝั‹ั… ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะน ะธะทะผะตะฝะตะฝะธะต, ัะบะพั€ะตะต ะฒัะตะณะพ, ะพัั‚ะฐะฝะตั‚ัั ะฝะตะทะฐะผะตั‚ะฝั‹ะผ; ะดะปั ั€ะตะดะบะธั… ะฟั€ะพะณั€ะฐะผะผ, ะฐะบั‚ะธะฒะฝะพ ะธัะฟะพะปัŒะทัƒัŽั‰ะธั… AF_ALG ั‡ะตั€ะตะท splice() ะธะปะธ sendfile(), ะฒะพะทะผะพะถะฝะฐ ะฟั€ะพัะฐะดะบะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะธะท-ะทะฐ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝะพะณะพ ะบะพะฟะธั€ะพะฒะฐะฝะธั.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster