{"id":181666,"date":"2026-05-22T18:25:08","date_gmt":"2026-05-22T16:25:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti"},"modified":"2026-05-22T18:25:08","modified_gmt":"2026-05-22T16:25:08","slug":"iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti","title":{"rendered":"Z interfejsu AF_ALG w Linuxie usuwaj\u0105 zero-copy z powod\u00f3w bezpiecze\u0144stwa.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>W podsystemie kryptografii Linux przygotowywane jest usuni\u0119cie wsparcia <strong>zero-copy<\/strong> z interfejsu <strong>AF_ALG<\/strong> dla typ\u00f3w algorytm\u00f3w <strong>SKCIPHER<\/strong> i <strong>AEAD<\/strong>. Zmiana znajduje si\u0119 ju\u017c w drzewie cryptodev i oczekuje na przes\u0142anie w oknie scalania <strong>Linux 7.2<\/strong>, kt\u00f3re powinno otworzy\u0107 si\u0119 w czerwcu. Powodem s\u0105 rosn\u0105ce obawy dotycz\u0105ce bezpiecze\u0144stwa mechanizm\u00f3w zero-copy w j\u0105drze, szczeg\u00f3lnie po niedawnych podatno\u015bciach w kodzie kryptograficznym Linuxa.<\/p>\n<p><noindex><noindex><\/p>\n<p><strong>AF_ALG<\/strong> \u2014 to <a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/html\/v6.1\/crypto\/userspace-if.html\">interfejs u\u017cytkownika<\/a> do kryptograficznego API j\u0105dra Linux. Dzi\u0119ki niemu programy mog\u0105 uzyskiwa\u0107 dost\u0119p do implementacji szyfr\u00f3w, haszy i algorytm\u00f3w AEAD w j\u0105drze jak do gniazd. Dokumentacja Linuxa oddzielnie opisuje tryb zero-copy dla AF_ALG za pomoc\u0105 splice() i vmsplice(), w kt\u00f3rym j\u0105dro stara si\u0119 unika\u0107 niepotrzebnego kopiowania danych do pami\u0119ci j\u0105dra.<\/p>\n<p><\/noindex><\/noindex><\/p>\n<p><noindex><\/p>\n<p>Problem w tym, \u017ce w przypadku AF_ALG takie zyski wydajno\u015bci okaza\u0142y si\u0119 niewystarczaj\u0105ce, a ryzyka zbyt du\u017ce. Autor zmiany, programista kryptograficznej podsystemu Linux, Erik Biggers z Google, <a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/1071203\/\">zaznaczy\u0142<\/a>, \u017ce zero-copy pozwala przestrzeni u\u017cytkownika na przeprowadzanie operacji kryptograficznych bezpo\u015brednio na stronach pami\u0119ci podr\u0119cznej stron plik\u00f3w, na przyk\u0142ad binarnego pliku su, co tworzy warunki dla podatno\u015bci TOCTOU, gdy pami\u0119\u0107 mo\u017ce by\u0107 zmieniana w trakcie operacji na niej.<\/p>\n<p><\/noindex><\/p>\n<p>Innymi s\u0142owy, mechanizm u\u017cyteczny w sieciowym lub plikowym wej\u015bciu-wyj\u015bciu w AF_ALG wydaje si\u0119 zbyt niebezpieczn\u0105 optymalizacj\u0105. Sam AF_ALG, wed\u0142ug s\u0142\u00f3w programisty, jest obecnie g\u0142\u00f3wnie utrzymywany dla wstecznej kompatybilno\u015bci z niewielk\u0105 liczb\u0105 program\u00f3w, takich jak iwd, kt\u00f3re jeszcze nie zosta\u0142y przekszta\u0142cone do kryptografii w przestrzeni u\u017cytkownika. Pocz\u0105tkowo AF_ALG by\u0142 zaprojektowany do dost\u0119pu do sprz\u0119towych akcelerator\u00f3w kryptograficznych, ale w praktyce okaza\u0142 si\u0119 ma\u0142o efektywnym interfejsem do tego zadania.<\/p>\n<p>Wa\u017cne jest, \u017ce nie chodzi tu o ca\u0142kowite usuni\u0119cie splice() lub sendfile() dla AF_ALG. Zmiana opisana jest jako \"mi\u0119kkie z\u0142amanie\" kompatybilno\u015bci: przesy\u0142anie danych w AF_ALG przez splice() i sendfile() nadal b\u0119dzie dzia\u0142a\u0107, ale j\u0105dro teraz b\u0119dzie tworzy\u0107 wewn\u0119trzn\u0105 stabiln\u0105 kopi\u0119 danych przed operacj\u0105 kryptograficzn\u0105. W niekt\u00f3rych przypadkach wydajno\u015b\u0107 mo\u017ce si\u0119 zmniejszy\u0107, ale publiczne API formalnie nie jest \u0142amane.<\/p>\n<p>Osobno podkre\u015bla si\u0119, \u017ce na razie zero-copy jest usuwane z <strong>skcipher<\/strong> i <strong>aead<\/strong>. Wsparcie dla typu <strong>hash<\/strong> b\u0119dzie rozwa\u017cane osobno.<\/p>\n<p><noindex><\/p>\n<p>Kontekst zmian jest nieprzyjemny. Pod koniec kwietnia ujawniono luk\u0119 <strong><a rel=\"nofollow\" href=\"https:\/\/xint.io\/blog\/copy-fail-linux-distributions\">Copy Fail<\/a><\/strong> (<strong>CVE-2026-31431<\/strong>) w algif_aead, czyli dok\u0142adnie w u\u017cytkowniczym interfejsie kryptograficznym AF_ALG. Badacze pokazali, \u017ce kombinacja AF_ALG, splice() i cech przetwarzania AEAD umo\u017cliwia\u0142a nieuprzywilejowanemu u\u017cytkownikowi uszkodzenie pami\u0119ci podr\u0119cznej strony, w tym stron odpowiadaj\u0105cych binarkom setuid, i zdobycie podwy\u017cszonych uprawnie\u0144 do roota.<\/p>\n<p><\/noindex><br \/>\n<noindex><\/p>\n<p>Pojawienie si\u0119 <a rel=\"nofollow\" href=\"https:\/\/www.sysdig.com\/blog\/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds\">Copy Fail<\/a> by\u0142o zwi\u0105zane z optymalizacj\u0105 z 2017 roku, kt\u00f3ra przekszta\u0142ci\u0142a operacje AEAD na przetwarzanie 'w miejscu'; podczas przesy\u0142ania pliku przez splice() w AF_ALG j\u0105dro nie dzia\u0142a\u0142o z kopi\u0105, ale z odniesieniami do stron pami\u0119ci podr\u0119cznej. W rezultacie cz\u0119\u015b\u0107 danych, kt\u00f3re by\u0142y uwa\u017cane tylko za dane wej\u015bciowe, mog\u0142a znale\u017a\u0107 si\u0119 w zapisywanej scatterlist.<\/p>\n<p><\/noindex><\/p>\n<p>Usuni\u0119cie zero-copy z AF_ALG nie jest jednolitym rozwi\u0105zaniem tylko jednej luki. Raczej jest to pr\u00f3ba wyeliminowania ca\u0142ej klasy ryzykownych scenariuszy z ma\u0142o u\u017cywanego UAPI, gdzie zyski z optymalizacji nie uzasadniaj\u0105 z\u0142o\u017cono\u015bci i potencjalnych konsekwencji. Dla zwyk\u0142ych u\u017cytkownik\u00f3w zmiana najprawdopodobniej pozostanie niezauwa\u017cona; dla rzadko u\u017cywanych program\u00f3w, kt\u00f3re aktywnie korzystaj\u0105 z AF_ALG za pomoc\u0105 splice() lub sendfile(), mo\u017cliwe jest obni\u017cenie wydajno\u015bci z powodu dodatkowego kopiowania.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/kernel\/18296321\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 Linux \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 zero-copy \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 AF_ALG \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 SKCIPHER \u0438 AEAD. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 cryptodev \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0432 \u043e\u043a\u043d\u043e \u0441\u043b\u0438\u044f\u043d\u0438\u044f Linux 7.2, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c\u0441\u044f \u0432 \u0438\u044e\u043d\u0435. \u041f\u043e\u0432\u043e\u0434\u043e\u043c \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0435 \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 zero-copy-\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0432 \u044f\u0434\u0440\u0435, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0445 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043a\u043e\u0434\u0435 Linux. AF_ALG [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-181666","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 Linux \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 zero-copy \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 AF_ALG \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 SKCIPHER \u0438 AEAD.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0437 AF_ALG \u0432 Linux \u0443\u0431\u0438\u0440\u0430\u044e\u0442 zero-copy \u0438\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 Linux \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 zero-copy \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 AF_ALG \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 SKCIPHER \u0438 AEAD.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-22T16:25:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-22T16:25:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Zero-copy w AF_ALG w Linux usuwane z powod\u00f3w bezpiecze\u0144stwa | ProHoster","description":"W podsystemie kryptografii Linux przygotowywane jest usuni\u0119cie wsparcia zero-copy z interfejsu AF_ALG dla typ\u00f3w algorytm\u00f3w SKCIPHER i AEAD.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0437 AF_ALG \u0432 Linux \u0443\u0431\u0438\u0440\u0430\u044e\u0442 zero-copy \u0438\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u0412 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 Linux \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 zero-copy \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 AF_ALG \u0434\u043b\u044f \u0442\u0438\u043f\u043e\u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 SKCIPHER \u0438 AEAD.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/iz-af_alg-v-linux-ubirayut-zero-copy-iz-soobrazhenij-bezopasnosti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-22T16:25:08+00:00","article:modified_time":"2026-05-22T16:25:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/181666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=181666"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/181666\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=181666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=181666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=181666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}