Ailagbara ninu ile-ikawe pẹlu imuse akọkọ ti SHA-3 algorithm

Ailagbara kan (CVE-3-2022) ti ṣe idanimọ ni imuse ti SHA-37454 (Keccak) iṣẹ hash cryptographic ti a nṣe ni package XKCP (eXtended Keccak Code Package), eyiti o le ja si ṣiṣan buffer nigbati o n ṣiṣẹ data kan. Iṣoro naa jẹ idi nipasẹ kokoro kan ninu koodu ti imuse kan pato ti SHA-3, kii ṣe nipasẹ ailagbara ninu algorithm funrararẹ. Apopọ XKCP naa jẹ ifasilẹ bi imuse osise ti SHA-3, ti dagbasoke pẹlu igbewọle lati ọdọ ẹgbẹ idagbasoke Keccak, ati pe o lo bi ipilẹ fun awọn iṣẹ SHA-3 ni ọpọlọpọ awọn ede siseto (fun apẹẹrẹ, koodu XKCP ni a lo ninu Python hashlib. module, Ruby Digest package sha3 ati PHP hash_* awọn iṣẹ).

Gẹgẹbi oluwadii ti o ṣe idanimọ iṣoro naa, o ni anfani lati lo ailagbara lati rú awọn ohun-ini cryptographic ti iṣẹ hash ati ki o wa awọn iṣaju akọkọ ati keji, bakannaa ri awọn ijamba. Ni afikun, o ti kede pe ilokulo apẹrẹ kan yoo ṣẹda ti yoo gba koodu laaye lati ṣiṣẹ nigbati o ṣe iṣiro hash ti faili apẹrẹ pataki kan. Ailagbara naa tun le ṣee lo lati kọlu awọn algoridimu ijẹrisi ibuwọlu oni nọmba ti o lo SHA-3 (fun apẹẹrẹ, Ed448). Awọn alaye ti awọn ọna ikọlu ni a gbero lati ṣe atẹjade nigbamii, lẹhin ti a ti pa ailagbara kuro nibi gbogbo.

Ko tii ṣe afihan iye ailagbara naa ni ipa lori awọn ohun elo ti o wa tẹlẹ ni iṣe, nitori pe iṣoro naa lati ṣafihan ararẹ ninu koodu, awọn iṣiro hash cyclic ni awọn bulọọki gbọdọ ṣee lo ati ọkan ninu awọn bulọọki ti a ṣe ilana gbọdọ jẹ nipa 4 GB ni iwọn (o kere ju. 2^32 - 200 baiti). Nigbati o ba n ṣiṣẹ data titẹ sii ni ẹẹkan (laisi iṣiro lẹsẹsẹ elile ni awọn apakan), iṣoro naa ko han. Gẹgẹbi ọna aabo ti o rọrun julọ, o ni imọran lati ṣe idinwo iwọn ti o pọju ti data ti o kan ninu aṣetunṣe kan ti iṣiro hash.

Ailagbara naa ṣẹlẹ nipasẹ aṣiṣe ni sisẹ data igbewọle. Nitori lafiwe ti ko tọ ti awọn iye pẹlu iru “int”, iwọn ti ko tọ ti data isunmọ ti pinnu, eyiti o yori si kikọ iru ju ifipamọ ti a sọtọ. Ni pataki, lafiwe naa lo ikosile “partialBlock + instance->byteIOIndex”, eyiti o yori si odidi aponsedanu fun awọn iye nla ti awọn apakan apakan. Ni afikun, iru simẹnti ti ko tọ “(int ti ko forukọsilẹ)(dataByteLen - i)” ninu koodu naa, eyiti o fa ṣiṣan lori awọn eto pẹlu iru iwọn 64-bit_t.

Apeere koodu ti o fa àkúnwọsílẹ: agbewọle hashlib h = hashlib.sha3_224 () m1 = b"\x00" * 1; m2 = b"\x00" * 4294967295; h.imudojuiwọn (m1) h.imudojuiwọn(m2) titẹ (h.hexdigest ())

orisun: opennet.ru

Fi ọrọìwòye kun