GnuPG haavatavused, mis vÔimaldavad verifikatsiooni vÀltimist ja oma koodi tÀitmist

Saksamaal toimuval 39C3 (Chaos Communication Congress) konferentsil avaldati detailid 12 varem tundmatu ja jĂ€tkuvalt parandamata (0-pĂ€eva) haavatavuse kohta GnuPG (GNU Privacy Guard) tööriistades, mis pakuvad OpenPGP ja S/MIME standarditega ĂŒhilduvaid utiliite andmete krĂŒptimiseks, digitaalsete allkirjade haldamiseks ja avalike vĂ”tmehoidlate juurde pÀÀsemiseks. Ohtlikumad haavatavused vĂ”imaldavad mööda minna digitaalallkirja kontrollist ja saavutada koodi kĂ€itamine ASCII-esitamiseks (ASCII Armor) krĂŒptitud andmete töötlemisel. Töötavaid exploite ja patĆĄe lubatakse hiljem avaldada. CVE-identifikaatoreid pole veel mÀÀratud.

Haavatavused on pĂ”hjustatud vigadest andmete töötlemise ja vormingute analĂŒĂŒsi koodis ning need ei ole seotud krĂŒptoalgoritmide puudustega. NĂ€iteks viga parseris pĂ”hjustab tĂ”rke, kui tuvastatakse tegelikult allkirjastatud andmeid, ja loob tingimused, kus kontrollitavad andmed vĂ”ivad mitte kokku langeda allkirjastatud andmetega, mis vĂ”imaldab rĂŒndajal asendada selget teksti ilma juurdepÀÀsuta privaatvĂ”tmele.

Tuvastatud probleemid:

  • Paranduskood vihjes krĂŒptitud andmete parsimise viga, mis levivad ASCII-Armor formaadis (tekstid, millel on plokid «BEGIN/END PGP ARMORED FILE»), viib mĂ€lupiiri ĂŒletava salvestamiseni. Probleem vĂ”ib vĂ”imaldada koodi tĂ€itmist, kui gpg töötleb spetsiaalselt vormindatud andmeid. Haavatavus ilmneb funktsioonis armor_filter() ja on pĂ”hjustatud „n” loenduri kahekordse suurendamise tĂ”ttu for-tsĂŒklis — vaatamata „n++” mÀÀramisele tsĂŒklis, suureneb loendur ka tsĂŒkli kehas, kui andmeid kirjutatakse puhvri „buf[n++]” sisse. Selle tulemusena salvestatakse puhvri piiridest vĂ€lja tĂ€iendav bait ning muutujaks „ret_len” seatakse vÀÀrtus, mis ĂŒletab tegeliku.
  • VĂ”imalus luua vĂ”i kirjutada ĂŒle mĂ”ni fail, kui seda lubavad praegused ligipÀÀsuĂ”igused, valesti Töötlemise tĂ”ttu andmepaketi „filename” vĂ€lja sisu. Haavatavust vĂ”ib kasutada koodi tĂ€itmise korraldamiseks sĂŒsteemis, kui vastuvĂ”tja tĂ€idab kĂ€ske „gpg —decrypt poc.enc” ja „gpg poc.enc” rĂŒnnakust saatja saadetud faili poc.enc vaatamiseks. Koodi tĂ€itmist on vĂ”imalik saavutada nĂ€iteks luues faile ~/.bash_completion vĂ”i ~/.ssh/authorized_keys.
  • Valik, mis vĂ”imaldab muuta avatud teksti, mida kasutajale kuvatakse, kui mÀÀratakse valik „—decrypt” ja kontrollimine eraldi edastatud digitaalsete allkirjade abil (Detached Signature, luuakse valiku „—detach-sig” abil ja edastatakse eraldi sig-failina). Probleemi olemus seisneb selles, et sĂ”numi ja sig-faili eraldi saatmise korral vĂ”ib rĂŒndaja, kes kontrollib vahepealset liiklust (MITM), teha sig-failis muudatusi, mille jĂ€rel kontrollimine jÀÀb edukaks, kuid „—decrypt” valiku abil sig-failist sĂ”numit vaadates kuvatakse teine sisu. echo Plaintext > plaintext gpg —detach-sig plaintext # rĂŒndaja muudab plaintext.sig, lisades tĂ€iendava teksti gpg —verify plaintext.sig plaintext # kontrollitud gpg —decrypt plaintext.sig # kontrollitud, kuid kuvatakse teine tekst
  • VĂ”imalus lisada allkirjastatud sĂ”numisse suvalisi andmeid, sĂ€ilitades allkirja edukat kontrollimist. Probleem tekib andmete lĂ”ikamisest 20000 tĂ€hemĂ€rgi piiril rĂ€simise arvutamisel.
  • Vale valev koodide kontrollimine, mis on autentimise krĂŒpteerimise (MDC — Modification Detection Codes) konteksti konfigureerimine, mis vĂ”imaldab manipuleerida krĂŒpteeritud pakettidega nii, et dekrĂŒpteerimisel töödeldakse saadud sisu teise tĂŒĂŒpi pakettina (nĂ€iteks peetakse seda avaliku vĂ”tmena, mis on mĂ”eldud avaldamiseks).
  • VĂ”imalus lisada tĂ€iendavaid andmeid CS-allkirjadesse (Cleartext Signature), mis on loodud lipuga „—not-dash-escaped“ vĂ”i konverteeritud eraldi lisatud allkirjadest (Detached Signature). Ohutuspuudus vĂ”ib kasutada, et luua kasutajale vale mulje, millised andmed tegelikult allkirjastatud on. NĂ€iteks vĂ”ib kasutaja allalaadida usaldusvÀÀrsetest allikatest korrektse vĂ”tme digitaalallkirja kontrollimiseks, kuid rĂŒndaja vĂ”ib MITM-rĂŒnnaku kĂ€igus asendada kasutaja alla laaditud ISO-pildi ja lisada pildi allkirjale tĂ€iendava rĂ€sihoodi, nii et muudetud pildi kontrollimine Ă”nnestub, kui sĂŒsteemis on olemas kontrollimiseks korrektne vĂ”ti.
  • Lisainformatsiooni sisestamine ASCII-esituses CS-allkirja (Cleartext Signature) kaudu, kasutades nullkoodi sĂŒmbolit. TurvanĂ”rkus vĂ”imaldab nĂ€iteks sisestada suvalist teksti Hashi pĂ€isesse.
  • Vale OpenPGP formaadi tĂ”lgendamine, mille tĂ”ttu "One-Pass Signed Message" ASCII-kodeeritud formaadis vĂ”ib teatud header'i muutuste korral töödelda kui "Cleartext Signature" sĂ”numit. TurvanĂ”rkus vĂ”imaldab asendada originaali allkirjastatud andmed kuritahtliku sisuga, sĂ€ilitades nĂ€iliselt eduka kontrollimise.
  • Selge eristumise puudumine digitaalallkirja kontrollimise edu ja sĂ”numi sisu vahel, mis vĂ”imaldab luua vale allkirjadeta sĂ”numeid, mis kĂ€ivitamisel "gpg --decrypt" nĂ€evad vĂ€lja nagu ehtsad.
  • VĂ”imalus luua OpenPGP sĂ”numeid, mida gpg töötleb teisiti kui teised OpenPGP teostused. Probleem tuleneb vĂ€ga pikkade ridade töötlemise eripĂ€radest ASCII-esituses OpenPGP andmete puhul.
  • Digitaalallkirja kontrollimise protsessis tingimuste loomine, mis vĂ”imaldab hash-kontrolli algoritmi tagasi pöörata ebaturvalisele SHA1-ile.
  • VĂ”imalus sisestada oma teiseseid vĂ”tmeid (subkey) ilma nende autoriseerimiseta, kasutades privaatset master key komponenti. RĂŒnnak toimub vale vĂ”tmehoidla lisamise kaudu, kasutades valikut «—keyring».

Lisaks on avastatud kaks haavatavust minisignis, lihtsustatud tööriistakomplektis digiallkirjade loomiseks ja kontrollimiseks. MÔlemad haavatavused (1, 2) vÔimaldavad kasutada terminali juhtimisjÀrgude («\e[1E») vÔi erimÀrke («\r») kommentaarivÀljas, et muuta programmi vÀljundit, nÀiteks asendades valideerimise tulemuse teavet.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster