Vulnerabbiltà fil-librerija bl-implimentazzjoni ewlenija tal-algoritmu SHA-3

Ġiet identifikata vulnerabbiltà (CVE-3-2022) fl-implimentazzjoni tal-funzjoni hash kriptografika SHA-37454 (Keccak) offruta fil-pakkett XKCP (eXtended Keccak Code Package), li tista’ twassal għal buffer overflow waqt l-ipproċessar ta’ ċerti data fformattjata. Il-problema hija kkawżata minn bug fil-kodiċi ta 'implimentazzjoni speċifika ta' SHA-3, u mhux minn vulnerabbiltà fl-algoritmu innifsu. Il-pakkett XKCP huwa msejjaħ bħala l-implimentazzjoni uffiċjali ta' SHA-3, żviluppat b'input mit-tim ta' żvilupp Keccak, u użat bħala l-bażi għall-funzjonijiet SHA-3 f'diversi lingwi ta' programmar (eż., kodiċi XKCP jintuża fil-hashlib Python). modulu, il-funzjonijiet Ruby digest sha3 u PHP hash_*).

Skont ir-riċerkatur li identifika l-problema, kien kapaċi juża l-vulnerabbiltà biex jikser il-proprjetajiet kriptografiċi tal-funzjoni tal-hash u jsib l-ewwel u t-tieni preimmaġini, kif ukoll jiskopri ħabtiet. Barra minn hekk, tħabbar li se jinħoloq sfruttament prototip li jippermetti li jiġi esegwit kodiċi meta jiġi kkalkolat il-hash ta 'fajl iddisinjat apposta. Il-vulnerabbiltà tista' wkoll potenzjalment tintuża biex tattakka algoritmi ta' verifika tal-firma diġitali li jużaw SHA-3 (per eżempju, Ed448). Dettalji tal-metodi ta 'attakk huma ppjanati li jiġu ppubblikati aktar tard, wara li l-vulnerabbiltà tkun ġiet eliminata kullimkien.

Għadu mhux ċar kemm il-vulnerabbiltà taffettwa l-applikazzjonijiet eżistenti fil-prattika, peress li biex il-problema timmanifesta ruħha fil-kodiċi, iridu jintużaw kalkoli tal-hash ċikliku fi blokki u wieħed mill-blokki pproċessati għandu jkun ta’ madwar 4 GB fid-daqs (mill-inqas 2^32 - 200 bytes). Meta tipproċessa d-dejta tal-input f'daqqa (mingħajr ma tikkalkula b'mod sekwenzjali l-hash f'partijiet), il-problema ma tidhirx. Bħala l-aktar metodu sempliċi ta 'protezzjoni, huwa propost li jiġi limitat id-daqs massimu tad-dejta involuta f'iterazzjoni waħda tal-kalkolu tal-hash.

Il-vulnerabbiltà hija kkawżata minn żball fl-ipproċessar tal-blokk tad-dejta tal-input. Minħabba paragun mhux korrett tal-valuri bit-tip "int", id-daqs mhux korrett tad-dejta pendenti huwa determinat, li jwassal biex id-denb jinkiteb lil hinn mill-buffer allokat. B'mod partikolari, it-tqabbil uża l-espressjoni "partialBlock + instance->byteIOIndex", li wasslet għal overflow integer għal valuri kbar tal-partijiet kostitwenti. Barra minn hekk, kien hemm mitfugħa tat-tip mhux korretta "(unsigned int)(dataByteLen - i)" fil-kodiċi, li kkawża overflow fuq sistemi b'tip size_t ta' 64-bit.

Eżempju ta 'kodiċi li jikkawża overflow: importazzjoni hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; m2 = b"\x00" * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())

Sors: opennet.ru

Żid kumment