Vid den pÄgÄende konferensen 39C3 (Chaos Communication Congress) i Tyskland avslöjades detaljer om 12 tidigare okÀnda och fortfarande ohanterade (0-dagars) sÄrbarheter i verktygen GnuPG (GNU Privacy Guard), som tillhandahÄller OpenPGP och S/MIME-kompatibla verktyg för datakryptering, hantering av elektroniska signaturer, nyckelhantering och tillgÄng till offentliga nyckelförrÄd. De mest allvarliga sÄrbarheterna möjliggör att man kringgÄr kontrollen av den digitala signaturen och Ästadkommer exekvering av kod vid behandling av krypterade data i ASCII-representation (ASCII Armor). Funktionella prototyper av exploater och patchar lovas publiceras senare. CVE-id har Ànnu inte tilldelats.
SÄrbarheterna orsakas av fel i koden för databehandling och formatparsing och Àr inte kopplade till brister i kryptografiska algoritmer. Till exempel leder ett fel i parsern till ett fel vid bestÀmning av faktiska signerade data och skapar förutsÀttningar dÀr de kontrollerade uppgifterna kan avvika frÄn de signerade uppgifterna, vilket möjliggör att en angripare kan byta ut klartext utan tillgÄng till den privata nyckeln.
Identifierade problem:
- Fel i koden för parsern av krypterad data som distribueras i ASCII-Armor-formatet (textfiler med blocket "BEGIN/END PGP ARMORED FILE"), vilket leder till skrivning utanför buffertens grĂ€nser. Problemet kan leda till exekvering av kod vid behandling av speciellt formaterade data i gpg. SĂ„rbarheten upptrĂ€der i funktionen armor_filter() och orsakas av en dubbelökning av rĂ€knaren "n" i "for"-loopen â trots att "n++" anges i sjĂ€lva loopen ökar rĂ€knaren Ă€ven i loopens kropp vid skrivning av data till bufferten "buf[n++]". Resultatet blir att en extra byte skrivs utanför bufferten och variabeln med storleken "ret_len" sĂ€tts till ett vĂ€rde som överskrider det faktiska.
- Möjlighet att skapa eller skriva över en valfri fil, beroende pĂ„ aktuella Ă„tkomstrĂ€ttigheter, pĂ„ grund av felaktig hantering av innehĂ„llet i fĂ€ltet "filename" i datapaketet. SĂ„rbarheten kan utnyttjas för att genomföra exekvering av kod i systemet genom att mottagaren utför kommandona "gpg âdecrypt poc.enc" och "gpg poc.enc" för att visa filen poc.enc som skickats av angrepparen. Exekvering av kod kan exempelvis Ă„stadkommas genom att skapa filer ~/.bash_completion eller ~/.ssh/authorized_keys.
- Möjlighet att byta ut den öppna text som visas för anvĂ€ndaren vid anvĂ€ndning av alternativet ââdecryptâ och verifiering med hjĂ€lp av separat tillhandahĂ„llna digitala signaturer (Detached Signature, skapas med alternativet ââdetach-sigâ och levereras i en separat sig-fil). Problemet Ă€r att vid separat skickande av meddelandet och sig-filen kan en angripare som kontrollerar den mellanliggande trafiken (MITM) göra Ă€ndringar i sig-filen, vilket gör att verifiering förblir lyckad, men vid visning av meddelandet frĂ„n sig-filen med alternativet ââdecryptâ kommer ett annat innehĂ„ll att visas. echo Plaintext > plaintext gpg âdetach-sig plaintext # Ă€ndrar plaintext.sig av angriparen genom att lĂ€gga till ytterligare text gpg âverify plaintext.sig plaintext # verifierad gpg âdecrypt plaintext.sig # verifierad, men ett annat text visas
- Möjlighet att komplettera det signerade meddelandet med valfria data samtidigt som den framgÄngsrika verifieringen av signaturen upprÀtthÄlls. Problemet uppstÄr pÄ grund av att data kapas vid grÀnsen 20000 tecken vid hashberÀkning.
- Felaktig verifiering av autentiserad krypteringskoder (MDC â Modification Detection Codes), vilket möjliggör manipulering av krypterade paket sĂ„ att den mottagna innehĂ„llet vid dekryptering behandlas som en annan typ av paket (till exempel, uppfattas som avsett för offentlig publicering av den öppna nyckeln).
- Möjlighet att infoga ytterligare data i CS-signaturer (Cleartext Signature) som skapats med hjĂ€lp av flaggan âânot-dash-escapedâ eller konverterats frĂ„n separat tillhandahĂ„llna signaturer (Detached Signature). SĂ„rbarheten kan anvĂ€ndas för att skapa en falsk uppfattning för anvĂ€ndaren om vilka data som faktiskt har signerats. Till exempel kan anvĂ€ndaren ladda ner en korrekt nyckel för verifiering av digital signatur frĂ„n pĂ„litliga kĂ€llor, men en angripare kan under en MITM-attack ersĂ€tta den iso-avbild som anvĂ€ndaren laddar ner och lĂ€gga till en ytterligare hash i signaturen av avbilden, pĂ„ ett sĂ„dant sĂ€tt att verifieringen av den bytta avbilden gĂ„r igenom framgĂ„ngsrikt med en korrekt verifieringsnyckel i systemet.
- Infogande av ytterligare data i ASCII-representationen av CS-signaturen (Cleartext Signature) genom att infoga en nolltecken. SÄrbarheten möjliggör till exempel insÀttning av godtycklig text i hashtiteln.
- Ogiltig tolkning av OpenPGP-format som gör att meddelandet âOne-Pass Signed Messageâ i ASCII-kodad format kan behandlas som ett âCleartext Signatureâ med vissa Ă€ndringar i rubriken. SĂ„rbarheten tillĂ„ter att byta ut de ursprungliga signerade data mot skadligt innehĂ„ll, samtidigt som verifikationen ser ut att ha lyckats.
- Brist pĂ„ tydlig avgrĂ€nsning i utdata av information om framgĂ„ngen av verifieringen av den digitala signaturen och meddelandets innehĂ„ll, vilket möjliggör skapande av falska osignerade meddelanden som vid körning av âgpg âdecryptâ ser ut som Ă€kta.
- Möjlighet att skapa OpenPGP-meddelanden som i gpg hanteras annorlunda Àn i andra OpenPGP-implementationer. Problemet orsakas av hur mycket lÄnga rader behandlas i ASCII-representationen av OpenPGP-data.
- Skapande av förhÄllanden i verifieringsprocessen för den digitala signaturen som ÄterstÀller hash-algoritmen till den osÀkra SHA1.
- Möjlighet att substituera sina egna sekundĂ€ra nycklar (subkey) utan deras auktorisering med hjĂ€lp av den privata delen av huvudnyckeln. Attacken genomförs genom att lĂ€gga till ett falskt nyckellager med hjĂ€lp av alternativet ââkeyringâ.
Ytterligare tvĂ„ sĂ„rbarheter har upptĂ€ckts i minisign, ett förenklat verktyg för att skapa och verifiera digitala signaturer. BĂ„da sĂ„rbarheterna (1, 2) tillĂ„ter anvĂ€ndning av terminalstyrenheter (â\e[1Eâ) eller specialtecken (â\râ) i kommentarsfĂ€ltet för att modifiera programmets utdata, till exempel för att ersĂ€tta verifikationsresultatinformation.
KĂ€lla: opennet.ru
