Identificirali su ranjivost u biblioteci algoritama SHA-3

ranjivost

Ako se iskoriste, ovi nedostaci mogu omogućiti napadačima neovlašteni pristup osjetljivim informacijama ili općenito uzrokovati probleme

Identificirana je ranjivost (već naveden pod CVE-2022-37454) en implementacija kriptografske hash funkcije SHA-3 (Keccak), koji se nudi u XKCP paketu (eXtended Keccak Code Package).

Utvrđena ranjivost može uzrokovati prekoračenje međuspremnika tijekom obrade formiranih podataka. Problem je uzrokovan greškom u kodu određene implementacije SHA-3, a ne ranjivosti u samom algoritmu.

El paquete XKCP reklamira se kao službena implementacija SHA-3, razvijena uz pomoć razvojnog tima Keccak, i koristi se kao osnova za funkcije za rad sa SHA-3 u raznim programskim jezicima (na primjer, XKCP kod se koristi u Python hashlib modulu, Ruby digest-sha3 paketu i PHP hash_* funkcijama).

Prema istraživaču koji je identificirao problem, mogao iskoristiti ranjivost za kršenje kriptografskih svojstava hash funkcije i pronaći prvu i drugu prasliku, kao i odrediti kolizije.

Razlog za pogrešku segmentacije je taj što će skripte pokušati upisati više podataka u međuspremnik nego što ih može primiti. Takva je ranjivost poznata kao buffer overflow, koju OWASP opisuje kao "vjerojatno najpoznatiji oblik sigurnosne ranjivosti softvera".

Mala varijanta koda uzrokovat će beskonačnu petlju: samo zamijenite 4294967295 s 4294967296. Obratite pozornost na sličnost s CVE-2019-8741, još jednom ranjivošću koju sam otkrio, a koja je utjecala na firmware više od 1.400 milijarde Appleovih uređaja, što je također uzrokovalo beskonačnu petlju.

Također, najavljena je izrada prototipa exploita, que omogućuje postizanje izvršenja koda pri izračunavanju hasha iz posebno dizajnirane datoteke. Ranjivost se također potencijalno može koristiti za napad na algoritme za provjeru digitalnog potpisa koji koriste SHA-3 (na primjer, Ed448). Očekuje se da će detalji o metodama napada biti objavljeni kasnije, nakon općeg uklanjanja ranjivosti.

Ovakvo ponašanje ne bi se trebalo dogoditi u "sigurnim" jezicima poput Pythona i PHP-a, jer oni provjeravaju jesu li sve operacije čitanja i pisanja unutar granica međuspremnika. Međutim, problem je što je ranjivost prisutna u temeljnom "nesigurnom" C jeziku...

Još nije jasno kako ranjivost utječe na postojeće aplikacije u praksi, jer da bi se problem manifestirao u kodu, mora se koristiti cikličko hash izračunavanje na blokovima, a jedan od obrađenih blokova mora biti veličine oko 4 GB (najmanje 2^32 – 200 bajtova).

Prilikom obrade ulaznih podataka odjednom (bez sekvencijalnog izračuna hash-a po dijelovima), problem se ne pojavljuje. Kao jednostavnija metoda zaštite, predlaže se ograničavanje maksimalne veličine podataka uključenih u jednu iteraciju hash izračuna.

Ranjivi kôd objavljen je u siječnju 2011., pa je trebalo više od desetljeća da se pronađe ta ranjivost. Čini se da je teško pronaći ranjivosti u kriptografskim implementacijama, iako igraju ključnu ulogu u ukupnoj sigurnosti sustava. (Možda ljudi čak i ne traže takve ranjivosti, budući da niti ova ranjivost u XKCP-u niti gore spomenuta Appleova ranjivost ne ispunjavaju uvjete za bilo kakve programe za nagrađivanje grešaka!)

Ranjivost je zbog greške u blok obradi ulaznih podataka. Zbog netočne usporedbe vrijednosti s tipom "int", utvrđuje se netočna veličina neizvršenih podataka, što uzrokuje ispisivanje reda iz dodijeljenog međuspremnika.

Posebno se spominje da se pri usporedbi izraz «partialBlock + instanca->byteIOIndex«, što je uz velike vrijednosti sastavnih dijelova dovelo do cjelobrojnog preljeva. Također, postojao je netočan typecast "(unsigned int)(dataByteLen - i)" u kodu, uzrokujući preljev na sustavima sa 64-bitnim size_t tipom.

Konačno ako vas zanima više o tome, detalje možete provjeriti u sljedeći link.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.