Saksamaal toimuval 39C3 (Chaos Communication Congress) konverentsil avaldati ĂŒksikasju 12 seni teadmata ja parandamata (0-pĂ€eva) haavatavuse kohta GnuPG (GNU Privacy Guard) tööriistade seas, mis pakuvad OpenPGP ja S/MIME standarditega ĂŒhilduvaid tööriistu andmete krĂŒpteerimiseks, allkirjade haldamiseks, vĂ”tmete haldamiseks ja avalike vĂ”tmehoidlate juurde pÀÀsemiseks. KĂ”ige ohtlikumad haavatavused vĂ”imaldavad mööda minna digitaalallkirja kontrollimisest ning saavutada koodi tĂ€itmine ASCII-vormingus krĂŒpteeritud andmete töötlemisel (ASCII Armor). Töötavad eksploitide prototĂŒĂŒbid ja plaastrid lubatakse hiljem avaldada. CVE-tuvid pole veel mÀÀratud.
Haavatavused on pĂ”hjustatud vigadest andmete töötlemise ja vormingute analĂŒĂŒsi koodis ning ei ole seotud krĂŒptoalgoritmide puudustega. NĂ€iteks, parseri viga pĂ”hjustab vea allakirjutatud andmete mÀÀramisel ja loob tingimused, kus kontrollitavad andmed vĂ”ivad mitte vastata allakirjutatud andmetele, mis vĂ”imaldab rĂŒndajal asendada avatud teksti ilma juurdepÀÀsuta privaatsesse vĂ”tmesse.
Tuvastatud probleemid:
- Viga ASCII-Armori formaadis (tekstid, mis sisaldavad plokki 'BEGIN/END PGP ARMORED FILE') krĂŒpteeritud andmete parseri koodis, mis viib mĂ€lu piire ĂŒletava kirjutamiseni. Probleem vĂ”ib pĂ”hjustada koodi tĂ€itmist, kui gpg töötleb spetsiaalselt vormindatud andmeid. Haavatavus avaldub funktsioonis armor_filter() ja tuleneb 'n' loenduri topeltinkrementatsiooni tsĂŒklis 'for' â hoolimata 'n++' mÀÀramisest tsĂŒklis, suureneb loenduri vÀÀrtus ka tsĂŒkli kehas, kui andmeid kirjutatakse puusse 'buf[n++]'. LĂ”ppkokkuvĂ”ttes kirjutatakse puust vĂ€lja ĂŒleliigne bait ja 'ret_len' suuruse mÀÀramisel seatakse vÀÀrtus, mis ĂŒletab tegeliku.
- VĂ”imalus luua vĂ”i ĂŒle kirjutada mistahes faili, kuivĂ”rd seda vĂ”imaldavad praegused Ă”igused, vale 'filename' vĂ€lja sisu töötlemise tĂ”ttu andmepaketis. Haavatavust saab kasutada sĂŒsteemis koodi kĂ€itamise korraldamiseks, kui saaja kĂ€ivitab kĂ€ske 'gpg --decrypt poc.enc' ja 'gpg poc.enc', et vaadata rĂŒndaja poolt saadetud faili poc.enc. Koodi tĂ€itmist saab saavutada nĂ€iteks failide ~/.bash_completion vĂ”i ~/.ssh/authorized_keys loomisega.
- VĂ”imalus asendada avatud tekst, mida kasutajale nĂ€idatakse valiku ââdecryptâ ja allkirjaga eraldi tarnitud digitaalsete allkirjade (Detached Signature, loodud valikuga ââdetach-sigâ ja tarnitud eraldi sig-failina) kasutamisel. Probleemi sisuks on see, et kui saata sĂ”num ja sig-fail eraldi, vĂ”ib rĂŒndaja, kes kontrollib vahepealset liiklust (MITM), sig-faili muuta, mille jĂ€rel jÀÀb valideerimine edukaks, kuid sĂ”numi vaatamine sig-faili kaudu valiku ââdecryptâ abil toob esile teistsuguse sisu. echo Plaintext > plaintext gpg âdetach-sig plaintext # rĂŒndaja muutis plaintext.sig, lisades tĂ€iendava teksti gpg âverify plaintext.sig plaintext # valideeritud gpg âdecrypt plaintext.sig # valideeritud, kuid vĂ€ljastatakse teistsugune tekst
- VÔimalus lisada allkirjastatud sÔnumile meelevaldseid andmeid, sÀilitades allkirja eduka kontrollimise. Probleem tekib andmete lÔikamisel 20000 tÀhemÀrgi piiril, kui arvutatakse rikka.
- Vale autentimise kontrollimise koodide (MDC â Modification Detection Codes) kĂ€sitlemine, mis vĂ”imaldab manipuleerida krĂŒpteeritud paketiga nii, et dekrĂŒpteerimise kĂ€igus töödeldakse saadud sisu teist tĂŒĂŒpi paketina (nĂ€iteks peetakse seda avaliku vĂ”tmise jaoks mĂ”eldud paketiks).
- VĂ”imalus lisada tĂ€iendavaid andmeid CS-allkirjadesse (Cleartext Signature), mis on loodud lipuga âânot-dash-escapedâ vĂ”i konverteeritud eraldi esitletud allkirjadest (Detached Signature). Haavatavust saab kasutada, et jĂ€tta kasutajale vale mulje, milliseid andmeid tegelikult allkirjastati. NĂ€iteks vĂ”ib kasutaja usaldusvÀÀrsetest allikatest alla laadida korrektse vĂ”tme digitaalallkirja kontrollimiseks, kuid rĂŒndaja vĂ”ib MITM-rĂŒnnaku kĂ€igus asendada kasutaja alla laaditava iso-pildi ja lisada pildi allkirjale tĂ€iendava rikka, nii et asendatud pildi valideerimine toimub edukalt, kui sĂŒsteemis on Ă”ige kontrolliv vĂ”ti.
- TĂ€iendavate andmete lisamine ASCII-esitlusesse CS-allkirjast (Cleartext Signature) nullkoodi sĂŒmboli sisestamise kaudu. Haavatavus vĂ”imaldab nĂ€iteks sisestada meelevaldset teksti Hashi pĂ€isesse.
- Vale tÔlgendamine OpenPGP formaadist, mille tÔttu ASCII kooditud sÔnum "One-Pass Signed Message" vÔib teatud pealkirja muutmise korral töödelda kui "Cleartext Signature". Vulnerability vÔimaldab asendada originaalsed allkirjastatud andmed pahatahtliku sisuga, sÀilitades eduka kontrollimise vÀlimuse.
- Puudub selge eraldus informatsiooni vÀljundis digitaalallkiri kontrollimise edukuse ja sÔnumi sisu vahel, mis vÔimaldab luua vale allkirjastamata sÔnumeid, mis nÀevad vÀlja nagu ehtsad, kui kÀivitate "gpg --decrypt".
- VÔimalus luua OpenPGP sÔnumeid, mida gpg töödeldakse teisiti kui teistes OpenPGP rakendustes. Probleem tuleneb ASCII esitusviisi vÀga pikkade ridadel töötlemise omadusest OpenPGP andmete puhul.
- Digitaalse allkirja kontrollimise protsessis luuakse tingimused, et tagasi minna ebaturvalise SHA1 kontrollimise algoritmi juurde.
- VĂ”imalus asendada oma sekundaarvĂ”tmed (subkey) ilma nende autoriseerimiseta, kasutades peavĂ”tme privaatset komponenti. RĂŒnnak toimub vale vĂ”tmehoidla lisamise kaudu, kasutades "--keyring" valik.
Lisaks on tuvastatud kaks haavatavust minisign'is, lihtsustatud tööriistas digitaalsete allkirjade loomiseks ja kontrollimiseks. MÔlemad haavatavused (1, 2) vÔimaldavad kasutada terminalikontrolli jÀrjestusi ("\e[1E") vÔi erimÀrke ("\r") kommentaarivÀljas programmi vÀljundi modifitseerimiseks, nÀiteks kontrollimise tulemuse teabe asendamiseks.
Allikas: opennet.ru
