GnuPG sebezhetőségei, amelyek lehetővé teszik a hitelesítés megkerülését és kód végrehajtását

A 39C3 (Chaos Communication Congress) conference taking place in Germany revealed details about 12 previously unknown and unpatched (0-day) vulnerabilities in the GnuPG (GNU Privacy Guard) toolkit, which provides OpenPGP and S/MIME compatible utilities for data encryption, handling electronic signatures, key management, and access to public key repositories. The most dangerous vulnerabilities allow bypassing digital signature verification and executing code when processing encrypted data in ASCII representation (ASCII Armor). Working prototypes of exploits and patches are expected to be published later. CVE identifiers have not yet been assigned.

The vulnerabilities are caused by errors in the data processing and format parsing code and are not related to flaws in the cryptographic algorithms. For example, an error in the parser causes a failure in determining the actually signed data, creating conditions under which the verified data may not match the signed data, allowing an attacker to substitute the plaintext without access to the private key.

Az azonosított problémák:

  • An error in the encrypted data parser, distributed in ASCII-Armor format (text files with the block 'BEGIN/END PGP ARMORED FILE'), leads to writing outside the buffer's memory limits. This problem can result in code execution when gpg processes specially crafted data. The vulnerability appears in the armor_filter() function and is caused by a double increment of the 'n' counter in the 'for' loop — even though 'n++' is specified in the loop itself, the counter increases in the loop body when writing data to the buffer 'buf[n++]'. Consequently, an extra byte is written beyond the buffer's limits, and the variable with size 'ret_len' is set to a value exceeding the actual size.
  • The ability to create or overwrite any file, as allowed by current access rights, due to incorrect handling of the 'filename' field in the data packet. This vulnerability can be used to execute code in the system when the recipient runs the commands 'gpg —decrypt poc.enc' and 'gpg poc.enc' to view the file poc.enc sent by the attacker. Code execution can be achieved, for example, by creating files ~/ .bash_completion or ~/ .ssh/authorized_keys.
  • A nyílt szöveg felcserélésének lehetősége, amelyet a felhasználónak a «—decrypt» opció megadásakor mutatunk, és az érvényesítést külön biztosított digitális aláírások (Detached Signature, a «—detach-sig» opcióval készülnek, és külön sig fájlban kerülnek átadásra) felhasználásával végzik. A probléma lényege, hogy a küldött üzenet és a sig fájl külön választható, egy támadó, aki az átmeneti forgalmat (MITM) irányítja, módosíthatja a sig fájlt, így az érvényesítés sikeres marad, de a sig fájl segítségével a «—decrypt» opció alkalmazásakor más tartalom jelenik meg. echo Plaintext > plaintext gpg —detach-sig plaintext # a plaintext.sig fájl támadó általi módosítása további szöveg hozzáadásával gpg —verify plaintext.sig plaintext # érvényesítve gpg —decrypt plaintext.sig # érvényesítve, de más szöveget ad ki
  • A digitálisan aláírt üzenet tetszőleges adatokkal való kiegészítésének lehetősége az aláírás sikeres ellenőrzésének megőrzésével. A probléma az, hogy a hash kiszámításakor az adatok 20000 karakteres határon belül levágódnak.
  • Hibás ellenőrzés az autentikált titkosítási kódok (MDC — Modification Detection Codes) esetében, amely lehetővé teszi a titkosított csomagok manipulálását úgy, hogy a dekódolt tartalom másik csomagtípusként kerül feldolgozásra (például a nyilvánosan közzétett nyílt kulcsra vonatkozik).
  • A CS-aláírások (Cleartext Signature) további adatokkal való helyettesítésének lehetősége, amelyeket a «—not-dash-escaped» kapcsolóval készítettek, vagy amelyeket külön biztosított aláírásokból (Detached Signature) konvertáltak. A sebezhetőség használható arra, hogy a felhasználóban hamis benyomást keltsenek arról, hogy valójában milyen adatok lettek aláírva. Például a felhasználó megbízható forrásokból letöltheti a megfelelő kulcsot a digitális aláírás ellenőrzésére, de a támadó a MITM támadás során megváltoztathatja a felhasználó által letöltött iso-képet, és hozzáadhat egy további hash-t az aláírásához, így a módosított kép érvényesítése sikeresen végbem mehet, ha a rendszerben a megfelelő ellenőrző kulcs elérhető.
  • További adatok beszúrása az ASCII odaadott CS-aláírás (Cleartext Signature) reprezentációjába, nulla kódú karakter beillesztésével. A sebezhetőség például lehetővé teszi, hogy tetszőleges szöveget illesszenek a Hash fejlécébe.
  • Az OpenPGP formátum helytelen értelmezése, amely miatt az ASCII kódolt „One-Pass Signed Message” üzenet „Cleartext Signature”-ként kezelhető egy adott fejlécmódosítás esetén. A sérülékenység lehetővé teszi, hogy az eredeti aláírt adatokat kártékony tartalomra cseréljék, miközben a sikeres ellenőrzés látszata megmarad.
  • A digitális aláírás ellenőrzésének sikeréről és az üzenet tartalmáról szóló információkban a világos elválasztás hiánya lehetővé teszi, hogy hamis, aláíratlan üzeneteket hozzanak létre, amelyek a „gpg —decrypt” parancs végrehajtásakor valódiaknak tűnnek.
  • OpenPGP üzenetek létrehozásának lehetősége, amelyek a gpg-n másként kerülnek feldolgozásra, mint az OpenPGP egyéb megvalósításaiban. A probléma az OpenPGP adatok ASCII ábrázolásában található nagyon hosszú sorok feldolgozására vonatkozó sajátosságból adódik.
  • A digitális aláírás ellenőrzési folyamatában olyan feltételek megteremtése, amelyek lehetővé teszik a hash-ellenőrzési algoritmus visszavonását egy biztonságtalan SHA1-re.
  • A másodlagos kulcsok (subkey) engedély nélküli behelyettesítésének lehetősége a mesterkulcs privát komponensének felhasználásával. A támadást hamis kulcstároló hozzáadásával hajtják végre a „—keyring” opció segítségével.

További két sérülékenység került felfedezésre a minisign-ben, az egyszerűsített digitális aláírások létrehozására és ellenőrzésére szolgáló eszközben. Mindkét sérülékenység (1, 2) lehetővé teszi a vezérlő szekvenciák („\e[1E”) vagy speciális karakterek („\r”) alkalmazását a kommentmezőben a program kimenetének módosítására, például az ellenőrzés eredményéről szóló információk helyettesítésére.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster