Chaidh so-leòntachd (CVE-2022-37454) a chomharrachadh ann an cur an gnĂŹomh gnĂŹomh hash crioptagrafach SHA-3 (Keccak) a tha air a thabhann sa phacaid XKCP (eXtended Keccak Code Package). Faodaidh an so-leòntachd seo leantainn gu cus-shruthadh bufair nuair a thathar aâ giullachd dĂ ta air a chruth gu sònraichte. Tha am mearachd air adhbhrachadh le biast ann an còd cur an gnĂŹomh SHA-3 sònraichte, chan e so-leòntachd san algairim fhèin. Tha XKCP air a bhrosnachadh mar an cur an gnĂŹomh oifigeil de SHA-3, air a leasachadh leis an sgioba leasachaidh Keccak, agus air a chleachdadh mar bhunait airson gnĂŹomhan SHA-3 ann an diofar chĂ nanan prògramaidh (mar eisimpleir, tha còd XKCP air a chleachdadh anns aâ mhodal Python hashlib, am pasgan Ruby digest-sha3, agus na gnĂŹomhan PHP hash_*).
A rèir an neach-rannsachaidh a lorg an duilgheadas, bha iad comasach air brath a ghabhail air an t-so-leòntachd gus briseadh a dhèanamh air feartan crioptagrafach an gnĂŹomh hash, aâ chiad agus an dĂ rna ro-ĂŹomhaigh a lorg, agus bualaidhean a lorg. Dhâainmich iad cuideachd cruthachadh prototype exploit a leigeas le còd a bhith air a chur an gnĂŹomh nuair a thathar aâ tomhas hash faidhle a chaidh a dhealbhadh gu sònraichte. Dhâfhaodadh an so-leòntachd a bhith air a chleachdadh cuideachd gus ionnsaigh a thoirt air algairidhean dearbhaidh ainm-sgrĂŹobhte didseatach a bhios aâ cleachdadh SHA-3 (mar eisimpleir, Ed448). Thathar an dĂšil mion-fhiosrachadh mu na dòighean ionnsaigh fhoillseachadh nas fhaide air adhart, Ă s deidh don t-so-leòntachd a bhith air a chĂ radh gu farsaing.
Chan eil e soilleir dè an ĂŹre gu bheil an so-leòntachd seo aâ toirt buaidh air tagraidhean a thâ ann mar-thĂ ann an cleachdadh, leis gum feum an còd Ă ireamhachadh hash bloca cearcallach a chleachdadh gus am bi an duilgheadas follaiseach, agus feumaidh aon de na blocaichean a thèid a phròiseasadh a bhith timcheall air 4 GB ann am meud (co-dhiĂš 2^32 - 200 bytes). Nuair a thathar aâ giullachd dĂ ta cuir a-steach uile aig an aon Ă m (gun a bhith aâ tomhas an hash ann am pĂŹosan gu sreathmhor), chan eil an duilgheadas ga nochdadh fhèin. Is e an dòigh lughdachadh as sĂŹmplidh a thathar aâ moladh crĂŹoch a chuir air meud as motha an dĂ ta a tha an sĂ s ann an aon ath-aithris Ă ireamhachadh hash.
Tha an so-leòntachd air adhbhrachadh le mearachd ann am pròiseasadh bloc dà ta cuir a-steach. Air sgà th coimeas ceà rr de luachan leis an t-seòrsa "int", tha meud ceà rr den dà ta a tha ri phròiseasadh air a dhearbhadh, ag adhbhrachadh sgrÏobhadh earbaill nas fhaide na am bufair a chaidh a shònrachadh. Gu sònraichte, chleachd an coimeas an abairt "partialBlock + instance->byteIOIndex," a dh'adhbhraich cus thar-shruthadh slà n nuair a bha luachan nan co-phà irtean mòr. A bharrachd air an sin, bha seòrsa ceà rr de "(unsigned int)(dataByteLen - i)" anns a' chòd, a dh'adhbhraich cus thar-shruthadh air siostaman leis an t-seòrsa size_t 64-bit.
Eisimpleir de chòd a dhâadhbharaicheas cus-shruthadh: import hashlib h = hashlib.sha3_224() m1 = bÂť\x00Âť * 1; m2 = bÂť\x00Âť * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())
Source: fosgailtenet.ru
