Er is een kwetsbaarheid gevonden in Ghostscript waardoor code kan worden uitgevoerd

Weinigen geleden dagen brachten ze het nieuws naar buiten van wat werd geïdentificeerd een kwetsbaarheid in Ghostscript (CVE-2020-15900) wat zou kunnen veroorzaken bestandswijziging en uitvoering van willekeurige commando's bij het openen van speciaal opgemaakte PostScript-documenten.

Voor degenen die niet bekend zijn met Ghostscript zouden dat moeten weten dit is een rendering-engine voor Postscript- en PDF-inhoud en het wordt vaak gebruikt om PDF- en Postscript-documenten om te zetten in afbeeldingen voor voorbeeld-, miniatuur- en afdrukdoeleinden.

Het wordt ook gebruikt voor het reproduceren van documenten van volledige kwaliteit voor veel pdf-viewers, inclusief populaire viewers op Android, en heeft een licentie van verschillende grote bedrijven zoals Google voor weergave in de cloud.

Over de kwetsbaarheid in Ghostscript

De bug is geïdentificeerd bij het gebruik van de rsearch-operator Niet-standaard PostScript in een document dat het mogelijk maakt om een ​​overflow van het type uint32_t te veroorzaken bij het berekenen van de maat, overschrijf geheugengebieden uit de buffer toegewezen en toegang krijgen tot bestanden op het bestandssysteem, die kunnen worden gebruikt om een ​​aanval uit te voeren om willekeurige code op het systeem uit te voeren (bijvoorbeeld door commando's toe te voegen aan ~ / .bashrc of ~ / .profile).

Het fragment dat door AFL werd gevonden, duwde een lege tekenreeks op de stapel: de lege haakjes (), kopieerde de verwijzing hiernaar, wat resulteerde in een stapel met twee lege tekenreeksen () () en deed vervolgens de omgekeerde zoekactie. Met andere woorden, het was op zoek naar een lege string in een lege string, beginnend vanaf het einde.

Helaas misten ze een grensgeval waarin de lege string wordt doorzocht. Bij het zoeken naar een lege string wordt dit gedefinieerd als onmiddellijk succes - er is niets om naar te zoeken, dus springen we helemaal naar het einde. Het resultaat moet echter worden onderverdeeld in de waarden vóór de overeenkomst, de overeenkomst en de waarden na de overeenkomst. Helaas ging de code ervan uit dat we minstens één keer hadden gekeken en de lengte van het resultaat na de wedstrijd verkeerd hadden berekend door er een van nul af te trekken, wat resulteerde in een terugkeer naar de maximale waarde: 4,294,967,295.

Deze fout het is een defect van het geheugenbeschadiging waarbij de kans op een storing bestaat en het gebeurt de hele tijd. U hoeft niet om te gaan met stapelbewakers enz., Lees en schrijf gewoon wat u maar wilt naar een enorm geheugensegment. Dit maakte het vrij gemakkelijk voor iemand die geen ervaren exploitschrijver is om het te exploiteren.

Vanwege deze onderstroom, deze string was nooit toegewezen en nam geen echte ruimte in beslag, maar het had een lengte die zich uitstrekte tot een andere herinnering. Als je probeert dat geheugen op willekeurige adressen te lezen of te schrijven, gaan de geheugenlimieten buiten, vandaar alle fouten bij het fuzzen. We kunnen de referentie echter opslaan om het gebruik ervan mogelijk te maken met behulp van dit codefragment:

Het is belangrijk om daar rekening mee te houden kwetsbaarheden in Ghostscript zijn ernstigeraangezien dit pakket wordt gebruikt in veel populaire PostScript- en PDF-verwerkingstoepassingen. Ghostscript wordt bijvoorbeeld aangeroepen bij het maken van miniaturen op het bureaublad, bij het indexeren van gegevens op de achtergrond en bij het converteren van afbeeldingen.

Voor een succesvolle aanval is het in veel gevallen voldoende om simpelweg het exploit-bestand te downloaden of ermee door de directory te bladeren in Nautilus.

Kwetsbaarheden in Ghostscript kunnen ook worden misbruikt via beeldstuurprogramma's gebaseerd op de ImageMagick- en GraphicsMagick-pakketten, waarbij een JPEG- of PNG-bestand wordt doorgegeven dat PostScript-code bevat in plaats van een afbeelding (het bestand wordt verwerkt in Ghostscript, aangezien het MIME-type wordt herkend door de inhoud en zonder afhankelijk te zijn van de extensie).

Oplossing

Het probleem heeft betrekking op versies 9.50 tot 9.52 (De bug bestaat al sinds versie 9.28rc1, maar volgens de onderzoekers die de kwetsbaarheid identificeerden, verscheen deze sinds versie 9.50).

Maar daarnaast werd in versie 9.52.1 al een oplossing voorgesteld enupdates zijn gepubliceerd van patchpakketten voor sommige Linux-distributies zoals Debian, Ubuntu en SUSE.

Terwijl pakketten in RHEL niet worden beïnvloed.

bron: https://insomniasec.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.