CVE-2020-28949
PEAR Archive_Tar Deserialization of Untrusted Data Vulnerability
Beschreibung
CVE-2020-28949 ist eine Schwachstelle durch Deserialisierung nicht vertrauenswürdiger Daten in PEAR Archive_Tar, die es einem Angreifer ermöglicht, einen Unserialisierungsangriff durchzuführen, indem die Groß-/Kleinschreibung-sensitive Blockierung des phar://-Stream-Wrappers ausgenutzt wird. Während die Bibliothek kleingeschriebene "phar:"-URIs blockiert, versagt sie bei der Blockierung von Großbuchstaben-Varianten wie "PHAR:", wodurch Angreifer PHP-Objekt-Deserialisierung über manipulierte Tar-Archiv-Dateinamen auslösen können. PEAR Archive_Tar wird in PHP-Ökosystemen weit verwendet, einschließlich in Drupal Core und Red Hat Linux. Die CISA hat CVE-2020-28949 in ihren KEV-Katalog aufgenommen, und mit einem EPSS-Score von 93,0 % (99. Perzentil) ist die Ausnutzung nahezu sicher.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HIm Rechner öffnenBetroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| php | archive tar | < 1.4.12 |
| debian | debian linux | 9.0; 10.0 |
| fedoraproject | fedora | 32; 33; 34; 35 |
| drupal | drupal | >= 7.0, < 7.75; >= 8.0.0, < 8.9.10; >= 8.8.0, < 8.8.12; >= 9.0.0, < 9.0.9 |
Mehrere CVSS-Bewertungen
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Referenzen
- http://packetstormsecurity.com/files/161095/PEAR-Archive_Tar-Arbitrary-File-Write.html(Exploit, Third Party Advisory, VDB Entry)
- https://github.com/pear/Archive_Tar/issues/33(Exploit, Issue Tracking, Vendor Advisory)
- https://lists.debian.org/debian-lts-announce/2020/11/msg00045.html(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/42GPGVVFTLJYAKRI75IVB5R45NYQGEUR/(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/4V35LBRM6HBCXBVCITKQ4UEBTXO2EG7B/(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/5KSFM672XW3X6BR7TVKRD63SLZGKK437/(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/KWM4CTMEGAC4I2CHYNJVSROY4CVXVEUT/(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/NBYZSHYTIOBK6V7C4N7TP6KIKCRKLVWP/(Mailing List, Third Party Advisory)
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/VJQQYDAOWHD6RDITDRPHFW7WY6BS3V5N/(Mailing List, Third Party Advisory)
- https://security.gentoo.org/glsa/202101-23(Third Party Advisory)
- https://www.debian.org/security/2020/dsa-4817(Mailing List, Third Party Advisory)
- https://www.drupal.org/sa-core-2020-013(Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-28949(US Government Resource)
Schwachstellentyp
CWE-502: Deserialisierung nicht vertrauenswürdiger Daten
CVE-2020-28949 nutzt eine Schwäche bei der Deserialisierung nicht vertrauenswürdiger Daten in PEAR Archive_Tar aus, bei der die Groß-/Kleinschreibung-sensitive Blockierung des phar://-PHP-Stream-Wrappers mit Großbuchstaben-Varianten umgangen werden kann. Wenn ein Tar-Archiv Dateinamen mit dem PHAR://-Schema enthält, verarbeitet die Archive_Tar-Bibliothek diese über PHPs phar-Stream-Handler, der automatisch die Phar-Metadaten deserialisiert — eine Operation, die beliebigen Code ausführen kann.
Mehr erfahren: CWE-502 — Deserialisierung nicht vertrauenswürdiger Daten
Auswirkungsanalyse
CVE-2020-28949 stellt ein kritisches Risiko für PHP-Anwendungen dar, die Tar-Archive mit PEAR Archive_Tar verarbeiten. Die Schwachstelle kann aus der Ferne ausgenutzt werden, indem ein manipuliertes Tar-Archiv an jede Anwendung geliefert wird, die Tar-Dateien entpackt oder verarbeitet. Es ist keine Authentifizierung erforderlich, und die Angriffskomplexität ist gering. Eine erfolgreiche Ausnutzung löst PHP-Objekt-Deserialisierung aus, die zu beliebiger Codeausführung auf dem Server führen kann. Im Kontext von CMS-Plattformen wie Drupal ermöglicht dies vollständige Website- und Serverkompromittierung, Zugriff auf Datenbank-Zugangsdaten und Benutzerdaten, Installation von Web-Shells für persistenten Zugriff und laterale Bewegung innerhalb der Hosting-Infrastruktur. Mit einem EPSS-Score von 93,0 % (99. Perzentil) gehört diese Schwachstelle zu den am aktivsten ausgenutzten.
Exploit-Reifegrad
Die CISA hat die aktive Ausnutzung von CVE-2020-28949 bestätigt, indem sie die Schwachstelle mit einer Behebungsfrist bis zum 15. September 2022 in den KEV-Katalog aufgenommen hat. Der EPSS-Score von 93,0 % (99. Perzentil) spiegelt nahezu sichere Ausnutzungsaktivität wider. Die Bypass-Technik ist trivial einfach — das Ändern von "phar:" zu "PHAR:" umgeht den Sicherheitsfilter — und öffentliche Exploit-Informationen sind weit verfügbar. Die Schwachstelle wurde in Drupal Core über das Security Advisory SA-CORE-2020-013 behoben, und Red Hat hat entsprechende Updates veröffentlicht. Es sind keine spezifischen Ransomware-Kampagnen mit dieser CVE assoziiert.
Behebung
- PEAR Archive_Tar auf die gepatchte Version aktualisieren: Gemäß der CISA-KEV-Vorgabe Updates gemäß Herstelleranweisungen anwenden. Archive_Tar auf eine Version aktualisieren, die Groß-/Kleinschreibung-unabhängige Blockierung des phar://-Stream-Wrappers implementiert.
- Drupal Core aktualisieren, falls zutreffend: Für Drupal-Installationen das im Drupal Advisory SA-CORE-2020-013 referenzierte Sicherheitsupdate anwenden.
- Red Hat Sicherheitsupdates installieren: Für Red Hat Linux-Systeme die Sicherheitsupdates installieren, die CVE-2020-28949 im gebündelten Archive_Tar-Paket beheben.
- PHP-Phar-Stream-Wrapper deaktivieren, wenn nicht benötigt: In der PHP-Konfiguration (php.ini) den Phar-Stream-Wrapper vollständig deaktivieren, falls Ihre Anwendung keine Phar-Archiv-Unterstützung benötigt.
- Tar-Archiv-Eingaben validieren und bereinigen: Strikte Validierung der Tar-Archivinhalte vor der Verarbeitung implementieren, wobei Archive mit Dateinamen, die Stream-Wrapper-Schemata (phar://, PHAR:// oder jede Schreibweisen-Variante) enthalten, abgelehnt werden.
Technische Details
CVE-2020-28949 ist eine PHP-Unserialisierungsschwachstelle in PEAR Archive_Tar, die durch einen Fehler in der Groß-/Kleinschreibungsprüfung des Sicherheitsfilters für den phar://-Stream-Wrapper entsteht. PHPs Phar-Stream-Wrapper ermöglicht den Zugriff auf Inhalte von PHP-Archiv-Dateien (Phar) über das phar://-Schema. Wenn ein Dateiname über den Phar-Stream-Handler verarbeitet wird, deserialisiert PHP automatisch die Phar-Metadaten, was __wakeup()- und __destruct()-Magic-Methods in PHP-Objekten auslösen kann — ein bekannter Vektor für beliebige Codeausführung. Archive_Tar versuchte, dies durch Blockierung von Dateinamen zu mitigieren, die mit "phar:" beginnen, aber die Prüfung war Groß-/Kleinschreibung-sensitiv. Ein Angreifer kann diesen Filter umgehen, indem er Großbuchstaben-Varianten wie "PHAR://malicious.phar" verwendet. Da PHPs Stream-Wrapper-Auflösung auf den meisten Plattformen Groß-/Kleinschreibung-unempfindlich ist, wird die Großbuchstaben-Variante dennoch vom Phar-Handler verarbeitet.
Häufig gestellte Fragen
Wird CVE-2020-28949 aktiv ausgenutzt?
Ja. Die CISA hat die aktive Ausnutzung bestätigt, indem sie CVE-2020-28949 in den KEV-Katalog aufgenommen hat. Der EPSS-Score von 93,0 % (99. Perzentil) deutet auf nahezu sichere Ausnutzung hin. Die Bypass-Technik ist trivial einfach und erfordert nur eine Großschreibungsänderung, um den Sicherheitsfilter zu umgehen.
Welche Produkte sind von CVE-2020-28949 betroffen?
CVE-2020-28949 betrifft PEAR Archive_Tar, das in Drupal Core und Red Hat Linux-Distributionen gebündelt ist. Jede PHP-Anwendung, die die verwundbare Version von Archive_Tar für die Tar-Archiv-Verarbeitung verwendet, ist potenziell betroffen.
Wie behebe ich CVE-2020-28949?
Aktualisieren Sie PEAR Archive_Tar auf die gepatchte Version mit Groß-/Kleinschreibung-unabhängiger phar://-Blockierung. Für Drupal das Update aus SA-CORE-2020-013 anwenden. Für Red Hat die Sicherheitsupdates des Herstellers installieren. Den PHP-Phar-Stream-Wrapper deaktivieren, wenn nicht benötigt.
Wie schwerwiegend ist CVE-2020-28949?
CVE-2020-28949 ist eine kritische Deserialisierungsschwachstelle, die beliebige Codeausführung über PHP-Objekt-Unserialisierung ermöglicht. Mit einem EPSS-Score von 93,0 % (99. Perzentil) gehört sie zu den am aktivsten ausgenutzten Schwachstellen. Die triviale Natur des Case-Sensitivity-Bypass macht die Ausnutzung für Angreifer mit minimaler technischer Erfahrung zugänglich.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.