Vulnerabilitetet në GnuPG, që lejojnë kalimin e verifikimit dhe ekzekutimin e kodit tënd

Në konferencën 39C3 (Chaos Communication Congress) që po zhvillohet në Gjermani, u zbuluan detaje mbi 12 vulnerabilitete të panjohura më parë dhe të pa zgjidhura (0-day) në mjetin GnuPG (GNU Privacy Guard), i cili ofron mjete që përmbushin standardet OpenPGP dhe S/MIME për kriptimin e të dhënave, punën me nënshkrime elektronike, menaxhimin e çelësave dhe qasjen në depo publike çelësash. Vulnerabilitetet më të rrezikshme lejojnë anashkalimin e verifikimit të nënshkrimit digjital dhe mundësojnë ekzekutimin e kodit kur përpunohen të dhëna të kriptuara në përfaqësimin ASCII (ASCII Armor). Prototipat funksionalë të eksploitëve dhe patch-et priten të publikohen më vonë. Identifikuesit CVE ende nuk janë caktuar.

Vulnerabilitetet shkaktohen nga gabime në kodin për përpunimin e të dhënave dhe analizën e formateve, dhe nuk lidhen me defekte në algoritmet kriptografike. Për shembull, një gabim në parser krijon një dështim në përcaktimin e të dhënave që janë në të vërtetë të nënshkruara dhe krijon kushte në të cilat të dhënat e verifikuara mund të mos përputhen me të dhënat e nënshkruara, që lejon një sulmues të modifikojë tekstin e hapur pa pasur qasje në çelësin privat.

Problemet e identifikuara:

  • Gabim nĂ« kodin e parserit tĂ« tĂ« dhĂ«nave tĂ« koduara, qĂ« shpĂ«rndahen nĂ« formatin ASCII-Armor (skedarĂ« tekstorĂ« me bllokun «BEGIN/END PGP ARMORED FILE»), qĂ« çon nĂ« shĂ«nimin e njĂ« zone memorje jashtĂ« kufijve tĂ« buferit. Problemi mund tĂ« çojĂ« nĂ« ekzekutimin e kodit gjatĂ« pĂ«rpunimit tĂ« tĂ« dhĂ«nave tĂ« formatuara nĂ« mĂ«nyrĂ« speciale nĂ« gpg. Vulnerabiliteti shfaqet nĂ« funksionin armor_filter() dhe shkaktohet nga dyfishimi i rritjes sĂ« numruesit «n» nĂ« ciklin «for» — pĂ«rkundrejt faktit se Ă«shtĂ« e specifikuar «n++» nĂ« vetĂ« ciklin, numruesi rritet po ashtu dhe nĂ« trupin e ciklit kur shkruhen tĂ« dhĂ«nat nĂ« buferin «buf[n++]». Si rezultat, njĂ« bajt ekstra shĂ«nohet pĂ«rtej kufirit tĂ« buferit, dhe variabla me madhĂ«sinĂ« «ret_len» vendoset nĂ« njĂ« vlerĂ« qĂ« tejkalon atĂ« reale.
  • MundĂ«sia pĂ«r tĂ« krijuar ose riparuar çdo skedar, sipas tĂ« drejtave tĂ« tanishme tĂ« aksesit, pĂ«r shkak tĂ« pĂ«rpunimit tĂ« paqartĂ« tĂ« pĂ«rmbajtjes sĂ« fushĂ«s «filename» nĂ« paketĂ«n e tĂ« dhĂ«nave. Vulnerabiliteti mund tĂ« shfrytĂ«zohet pĂ«r tĂ« organizuar ekzekutimin e kodit nĂ« sistem kur marrĂ«si ekzekuton komandat «gpg —decrypt poc.enc» dhe «gpg poc.enc» pĂ«r tĂ« parĂ« skedarin poc.enc tĂ« dĂ«rguar nga sulmuesi. Mund tĂ« arrihet ekzekutimi i kodit, pĂ«r shembull, pĂ«rmes krijimit tĂ« skedarĂ«ve ~/.bash_completion ose ~/.ssh/authorized_keys.
  • MundĂ«sia e zĂ«vendĂ«simit tĂ« tekstit tĂ« hapur, i paraqitur pĂ«rdoruesit kur shĂ«nohet opsioni «—decrypt» dhe verifikimi duke pĂ«rdorur nĂ«nshkrime dixhitale qĂ« ofrohen veçmas (Detached Signature, krijohen me opsionin «—detach-sig» dhe ofrohen nĂ« njĂ« skedar sig tĂ« veçantĂ«). Thelbi i problemit qĂ«ndron nĂ« faktin se, kur mesazhi dhe skedari sig dĂ«rgohen ndaras, njĂ« sulmues qĂ« kontrollon trafikun midis (MITM) mund tĂ« bĂ«jĂ« ndryshime nĂ« skedarin sig, pas tĂ« cilave verifikimi do tĂ« mbetet i suksesshĂ«m, por gjatĂ« shikimit tĂ« mesazhit nga skedari sig me ndihmĂ«n e opsionit «—decrypt» do tĂ« shfaqet njĂ« pĂ«rmbajtje tjetĂ«r. echo Plaintext > plaintext gpg —detach-sig plaintext # ndryshimi plaintext.sig nga sulmuesi me shtimin e tekstit tĂ« dorĂ«s tjetĂ«r gpg —verify plaintext.sig plaintext # verifikuar gpg —decrypt plaintext.sig # verifikuar, por shfaq njĂ« tekst tjetĂ«r
  • MundĂ«sia e shtimit tĂ« tĂ« dhĂ«nave tĂ« rastĂ«sishme nĂ« njĂ« mesazh tĂ« nĂ«nshkruar pa e prishur verifikimin e nĂ«nshkrimit. Problemi lind nga prerja e tĂ« dhĂ«nave nĂ« kufirin e 20000 karaktereve gjatĂ« llogaritjes sĂ« hash-it.
  • Kontroll i saktĂ«sinĂ« e kodave tĂ« autentifikimit tĂ« enkriptimit (MDC - Modification Detection Codes), qĂ« lejon manipulimin e paketeve tĂ« enkriptuara nĂ« mĂ«nyrĂ« qĂ« pĂ«rmbajtja e dekriptuar tĂ« trajtohet si njĂ« lloj tjetĂ«r pakete (p.sh., tĂ« perceptohet si njĂ« çelĂ«s publik i destinuar pĂ«r publikim).
  • MundĂ«sia e injektimit tĂ« tĂ« dhĂ«nave tĂ« tjera nĂ« CS-nĂ«nshkrimet (Cleartext Signature), tĂ« krijuara duke pĂ«rdorur flagun "—not-dash-escaped" ose tĂ« konvertuara nga nĂ«nshkrime tĂ« veçuara (Detached Signature). Kjo dobĂ«si mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar njĂ« pĂ«rshtypje tĂ« gjerĂ« tek pĂ«rdoruesi nĂ« lidhje me tĂ« dhĂ«nat qĂ« ishin vĂ«rtet tĂ« nĂ«nshkruara. PĂ«r shembull, pĂ«rdoruesi mund tĂ« shkarkojĂ« njĂ« çelĂ«s tĂ« saktĂ« pĂ«r verifikimin e nĂ«nshkrimit digjital nga burime tĂ« besueshme, por njĂ« sulmues gjatĂ« njĂ« sulmi MITM mund tĂ« ndryshojĂ« imazhin ISO qĂ« shkarkon pĂ«rdoruesi dhe tĂ« shtojĂ« njĂ« hash tĂ« shtuar nĂ« nĂ«nshkrimin e imazhit, nĂ« njĂ« mĂ«nyrĂ« qĂ« verifikimi i imazhit tĂ« ndryshuar tĂ« kalojĂ« me sukses duke pasur nĂ« sistemin e çelĂ«sin e saktĂ« tĂ« verifikimit.
  • ZĂ«vendĂ«simi i tĂ« dhĂ«nave shtesĂ« nĂ« formatin ASCII tĂ« nĂ«nshkrimit CS (Cleartext Signature) pĂ«rmes shtimit tĂ« njĂ« simboli me kod zero. Kjo dobĂ«si, pĂ«r shembull, lejon futjen e tekstit tĂ« rastĂ«sishĂ«m nĂ« titullin Hash.
  • Interpretimi i pasaktĂ« i formatit OpenPGP, i cili mundĂ«son qĂ« mesazhi "One-Pass Signed Message" nĂ« formatin e koduar ASCII tĂ« trajtohet si mesazh "Cleartext Signature" nĂ« njĂ« ndryshim tĂ« caktuar tĂ« titullit. Kjo dobĂ«si lejon zĂ«vendĂ«simin e tĂ« dhĂ«nave origjinale tĂ« nĂ«nshkruara me pĂ«rmbajtje tĂ« dĂ«mshme, duke ruajtur dukshmĂ«rinĂ« e verifikimit tĂ« suksesshĂ«m.
  • Mungesa e ndarjes sĂ« qartĂ« nĂ« informacionin mbi suksesin e verifikimit tĂ« nĂ«nshkrimit digjital dhe pĂ«rmbajtjes sĂ« mesazhit, qĂ« lejon krijimin e mesazheve tĂ« falsifikuara, pa nĂ«nshkrim, tĂ« cilat gjatĂ« ekzekutimit tĂ« "gpg —decrypt" duken si tĂ« vĂ«rteta.
  • MundĂ«sia pĂ«r krijimin e mesazheve OpenPGP qĂ« nĂ« gpg do tĂ« trajtohen ndryshe nga implementimet e tjera tĂ« OpenPGP. Problemi shkaktohet nga veçoria e trajtimit tĂ« linjave shumĂ« tĂ« gjata nĂ« formatin ASCII tĂ« tĂ« dhĂ«nave OpenPGP.
  • Krijimi i kushteve gjatĂ« procesit tĂ« verifikimit tĂ« nĂ«nshkrimit digjital pĂ«r tĂ« rikthyer algoritmin e verifikimit tĂ« hash-it nĂ« njĂ« SHA1 tĂ« pasigurt.
  • MundĂ«sia pĂ«r tĂ« futur çelĂ«sat tuaj sekondarĂ« (subkey) pa autorizimin e tyre duke pĂ«rdorur komponentin privat tĂ« çelĂ«sit kryesor. Sulmi realizohet pĂ«rmes shtimit tĂ« njĂ« depozitĂ« tĂ« rreme çelĂ«sash pĂ«rmes opsionit «—keyring».

Për më tepër, janë identifikuar dy vulnerabilitete në minisign, një mjet i thjeshtë për krijimin dhe verifikimin e nënshkrimeve dixhitale. Të dy vulnerabilitetet (1, 2) lejojnë përdorimin e sekuencave të kontrollit të terminalit («\e[1E») ose karaktereve speciale («\r») në fushën e komenteve për të modifikuar daljen e programit, për shembull, për të zëvendësuar informacionin për rezultatin e verifikimit.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster