{"id":105350,"date":"2022-10-21T09:36:42","date_gmt":"2022-10-21T07:36:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3"},"modified":"2022-10-21T09:36:42","modified_gmt":"2022-10-21T07:36:42","slug":"uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3","title":{"rendered":"Zranitelnost v knihovn\u011b s hlavn\u00ed implementac\u00ed algoritmu SHA-3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V implementaci kryptografick\u00e9 hash-funkce SHA-3 (Keccak), navr\u017een\u00e9 v bal\u00ed\u010dku XKCP (eXtended Keccak Code Package), byla zji\u0161t\u011bna zranitelnost (CVE-2022-37454), kter\u00e1 m\u016f\u017ee v\u00e9st k p\u0159ete\u010den\u00ed bufferu p\u0159i zpracov\u00e1n\u00ed ur\u010dit\u011b form\u00e1tovan\u00fdch dat. Probl\u00e9m je zp\u016fsoben chybou v k\u00f3du konkr\u00e9tn\u00ed implementace SHA-3, nikoli zranitelnost\u00ed samotn\u00e9ho algoritmu. Bal\u00ed\u010dek XKCP je prezentov\u00e1n jako ofici\u00e1ln\u00ed implementace SHA-3, vyv\u00edjen\u00fd za \u00fa\u010dasti t\u00fdmu v\u00fdvoj\u00e1\u0159\u016f Keccak a pou\u017e\u00edv\u00e1n jako z\u00e1klad v funkc\u00edch pro pr\u00e1ci s SHA-3 v r\u016fzn\u00fdch programovac\u00edch jazyc\u00edch (nap\u0159\u00edklad k\u00f3d XKCP se pou\u017e\u00edv\u00e1 v Python modulu hashlib, Ruby bal\u00ed\u010dku digest-sha3 a PHP funkc\u00edch hash_*).     <\/p>\n<p>Podle tvrzen\u00ed v\u00fdzkumn\u00edka, kter\u00fd probl\u00e9m odhalil, se mu poda\u0159ilo vyu\u017e\u00edt zranitelnost k naru\u0161en\u00ed kryptografick\u00fdch vlastnost\u00ed hash-funkce a k nalezen\u00ed prvn\u00edho a druh\u00e9ho p\u0159edobrazu, stejn\u011b jako k ur\u010den\u00ed koliz\u00ed. D\u00e1le byla ozn\u00e1mena v\u00fdroba prototypu exploit, kter\u00fd umo\u017e\u0148uje dosa\u017een\u00ed vykon\u00e1n\u00ed k\u00f3du p\u0159i v\u00fdpo\u010dtu hash speci\u00e1ln\u011b form\u00e1tovan\u00e9ho souboru. Potenci\u00e1ln\u011b m\u016f\u017ee b\u00fdt zranitelnost tak\u00e9 vyu\u017eita k \u00fatok\u016fm na algoritmy ov\u011b\u0159ov\u00e1n\u00ed digit\u00e1ln\u00edch podpis\u016f pou\u017e\u00edvaj\u00edc\u00edch SHA-3 (nap\u0159\u00edklad Ed448). Podrobnosti metod prov\u00e1d\u011bn\u00ed \u00fatok\u016f budou zve\u0159ejn\u011bny pozd\u011bji, po celoplo\u0161n\u00e9m odstran\u011bn\u00ed zranitelnosti.    <\/p>\n<p>Jak p\u0159esn\u011b zranitelnost ovliv\u0148uje st\u00e1vaj\u00edc\u00ed aplikace, zat\u00edm nen\u00ed jasn\u00e9, proto\u017ee k projeven\u00ed probl\u00e9mu v k\u00f3du mus\u00ed b\u00fdt pou\u017eito cyklick\u00e9 hashov\u00e1n\u00ed bloky a jeden z zpracov\u00e1van\u00fdch blok\u016f mus\u00ed m\u00edt velikost p\u0159ibli\u017en\u011b 4 GB (alespo\u0148 2^32 \u2014 200 byte). P\u0159i zpracov\u00e1v\u00e1n\u00ed vstupn\u00edch dat najednou (bez sekven\u010dn\u00edho hashov\u00e1n\u00ed po \u010d\u00e1stech) se probl\u00e9m neprojevuje. Jako nejjednodu\u0161\u0161\u00ed metodou ochrany se doporu\u010duje omezit maxim\u00e1ln\u00ed velikost dat zapojen\u00fdch do jedn\u00e9 iterace hashov\u00e1n\u00ed.        <\/p>\n<p>Zranitelnost je zp\u016fsobena chybou p\u0159i blokov\u00e9m zpracov\u00e1n\u00ed vstupn\u00edch dat. Kv\u016fli nespr\u00e1vn\u00e9mu porovn\u00e1n\u00ed hodnot s typem \u201eint\u201c je ur\u010dena nespr\u00e1vn\u00e1 velikost dat, kter\u00e1 maj\u00ed b\u00fdt zpracov\u00e1na, co\u017e vede k z\u00e1pisu p\u0159ebytku za vyhrazen\u00fd buffer. Konkr\u00e9tn\u011b p\u0159i porovn\u00e1v\u00e1n\u00ed byl pou\u017eit v\u00fdraz \u201epartialBlock + instance-&gt;byteIOIndex\u201c, kter\u00fd p\u0159i velk\u00fdch hodnot\u00e1ch komponent\u016f vedl k p\u0159ekro\u010den\u00ed cel\u00e9 hodnoty. D\u00e1le bylo v k\u00f3du p\u0159\u00edtomno nespr\u00e1vn\u00e9 p\u0159evod typ\u016f \u201e(unsigned int)(dataByteLen - i)\u201c, co\u017e vedlo k p\u0159ete\u010den\u00ed na syst\u00e9mech se 64bitov\u00fdm typem size_t.       <\/p>\n<p>P\u0159\u00edklad k\u00f3du, kter\u00fd zp\u016fsobuje p\u0159ete\u010den\u00ed:         import hashlib     h = hashlib.sha3_224()     m1 = b'' * 1;     m2 = b'' * 4294967295;     h.update(m1)     h.update(m2)     print(h.hexdigest())<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57953\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 SHA-3 (Keccak), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 XKCP (eXtended Keccak Code Package), \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2022-37454), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0432 \u043a\u043e\u0434\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 SHA-3, \u0430 \u043d\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u0430\u043c\u043e\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435. \u041f\u0430\u043a\u0435\u0442 XKCP \u043f\u0440\u0435\u043f\u043e\u0434\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f SHA-3, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0447\u0430\u0441\u0442\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105350","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 SHA-3 (Keccak), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 XKCP (eXtended Keccak Code Package), \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2022-37454), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 SHA-3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 SHA-3 (Keccak), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 XKCP (eXtended Keccak Code Package), \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2022-37454), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3\" \/>\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=\"2022-10-21T07:36:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-10-21T07:36:42+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\udd47Zranitelnost v knihovn\u011b s hlavn\u00ed implementac\u00ed algoritmu SHA-3 | ProHoster","description":"V implementaci kryptografick\u00e9 hashovac\u00ed funkce SHA-3 (Keccak), nab\u00edzen\u00e9 v bal\u00ed\u010dku XKCP (eXtended Keccak Code Package), byla identifikov\u00e1na zranitelnost (CVE-2022-37454), kter\u00e1 m\u016f\u017ee v\u00e9st k p\u0159ete\u010den\u00ed bufferu v pr\u016fb\u011bhu zpracov\u00e1n\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0423\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 SHA-3 | ProHoster","og:description":"\u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0445\u044d\u0448-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 SHA-3 (Keccak), \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 XKCP (eXtended Keccak Code Package), \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c (CVE-2022-37454), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0431\u0443\u0444\u0435\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/uyazvimost-v-biblioteke-s-osnovnoj-realizacziej-algoritma-sha-3","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":"2022-10-21T07:36:42+00:00","article:modified_time":"2022-10-21T07:36:42+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\/cs\/wp-json\/wp\/v2\/posts\/105350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=105350"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/105350\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=105350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=105350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=105350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}