PHP bis 7.0.5 ZIP Archive zend_string.h ZipArchive::getFromIndex Pufferüberlauf
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 9.3 | $0-$5k | 0.00 |
Zusammenfassung
In PHP bis 7.0.5 wurde eine kritische Schwachstelle gefunden. Hiervon betroffen ist die Funktion ZipArchive::getFromIndex der Datei zend_string.h der Komponente ZIP Archive Handler. Dank der Manipulation mit unbekannten Daten kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden.
Diese Schwachstelle wird als CVE-2016-3078 gehandelt. Ein Angriff ist aus der Distanz möglich. Ausserdem ist ein Exploit verfügbar.
Es wird empfohlen, die betroffene Komponente zu aktualisieren.
Details
Eine kritische Schwachstelle wurde in PHP bis 7.0.5 (Programming Language Software) gefunden. Davon betroffen ist die Funktion ZipArchive::getFromIndex der Datei zend_string.h der Komponente ZIP Archive Handler. Durch die Manipulation mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-190. Die Auswirkungen sind bekannt für Vertraulichkeit, Integrität und Verfügbarkeit.
Die Schwachstelle wurde am 28.04.2016 durch Hans Jerry Illikainen (Website) herausgegeben. Das Advisory findet sich auf openwall.com. Eine Veröffentlichung wurde in Zusammenarbeit mit dem Projektteam angestrebt. Die Verwundbarkeit wird seit dem 10.03.2016 mit der eindeutigen Identifikation CVE-2016-3078 gehandelt. Die Schwachstelle ist relativ beliebt, und dies trotz ihrer hohen Komplexität. Umgesetzt werden kann der Angriff über das Netzwerk. Das Ausnutzen erfordert keine spezifische Authentisierung. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt. Der folgende Code ist die Ursache des Problems:
static zend_always_inline zend_string *zend_string_alloc(size_t len, int persistent)
{
zend_string *ret = (zend_string *)pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); // (4)
...
ZSTR_LEN(ret) = len; // (5)
return ret;
} Das Advisory weist darauf hin:The `size' argument to the `pemalloc' macro is aligned/adjusted in (4) whilst the *original* value of `len' is stored as the size of the allocated buffer in (5). No boundary checking is done in (4) and it may thus wrap, which would lead to a heap overflow during the invocation of `zip_fread()' in (3) as the `toread' argument is `ZSTR_LEN(buffer).Ein öffentlicher Exploit wurde durch Hans Jerry Illikainen in Python entwickelt und direkt nach dem Advisory veröffentlicht. Unter exploit-db.com wird der Exploit zum Download angeboten. Er wird als proof-of-concept gehandelt. Der Preis als 0-Day war auf dem Schwarzmarkt etwa $25k-$100k. Für den Vulnerability Scanner Nessus wurde am 25.05.2016 ein Plugin mit der ID 91320 (Ubuntu 12.04 LTS / 14.04 LTS / 15.10 / 16.04 LTS : php5, php7.0 vulnerabilities (USN-2984-1)) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann. Es wird der Family Ubuntu Local Security Checks zugeordnet und im Kontext l ausgeführt. Der kommerzielle Vulnerability Scanner Qualys bietet das Plugin 196483 (Ubuntu Security Notification for Php5, Php7.0 Vulnerabilities (USN-2984-1)) zur Prüfung der Schwachstelle an. Der durch den Exploit genutzte Code gestaltet sich wie folgt:
$zip = new ZipArchive();
if ($zip->open($_FILES["file"]["tmp_name"]) !== TRUE) {
echo "cannot open archive\n";
} else {
for ($i = 0; $i < $zip->numFiles; $i++) {
$data = $zip->getFromIndex($i);
}
$zip->close();Ein Aktualisieren auf die Version 7.0.6 vermag dieses Problem zu lösen. Das Erscheinen einer Gegenmassnahme geschah 4 Wochen nach der Veröffentlichung der Schwachstelle. Die Entwickler haben demzufolge noch im Rahmen gehandelt.
Unter anderem wird der Fehler auch in den Datenbanken von Exploit-DB (39742), Tenable (91320) und SecurityTracker (ID 1035701†) dokumentiert. Schwachstellen ähnlicher Art sind dokumentiert unter VDB-83181, VDB-87586 und VDB-90603. Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Produkt
Typ
Name
Version
Lizenz
Webseite
- Produkt: https://www.php.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 9.8VulDB Meta Temp Score: 9.3
VulDB Base Score: 9.8
VulDB Temp Score: 8.8
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍
NVD Base Score: 9.8
NVD Vector: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍
NVD Base Score: 🔍
Exploiting
Klasse: PufferüberlaufCWE: CWE-190 / CWE-189
CAPEC: 🔍
ATT&CK: 🔍
Physisch: Nein
Lokal: Nein
Remote: Ja
Verfügbarkeit: 🔍
Zugang: öffentlich
Status: Proof-of-Concept
Autor: Hans Jerry Illikainen
Programmiersprache: 🔍
Download: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Nessus ID: 91320
Nessus Name: Ubuntu 12.04 LTS / 14.04 LTS / 15.10 / 16.04 LTS : php5, php7.0 vulnerabilities (USN-2984-1)
Nessus Datei: 🔍
Nessus Risiko: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
OpenVAS ID: 803381
OpenVAS Name: PHP Denial of Service Vulnerability - 01 - Aug16 (Linux)
OpenVAS Datei: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Exploit-DB: 🔍
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
Reaktionszeit: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Exploit Delay Time: 🔍
Upgrade: PHP 7.0.6
Patch: github.com
Timeline
10.03.2016 🔍28.04.2016 🔍
28.04.2016 🔍
28.04.2016 🔍
02.05.2016 🔍
24.05.2016 🔍
25.05.2016 🔍
07.08.2016 🔍
11.06.2024 🔍
Quellen
Produkt: php.orgAdvisory: USN-2984-1
Person: Hans Jerry Illikainen
Status: Bestätigt
Bestätigung: 🔍
Koordiniert: 🔍
CVE: CVE-2016-3078 (🔍)
GCVE (CVE): GCVE-0-2016-3078
GCVE (VulDB): GCVE-100-83075
SecurityTracker: 1035701
scip Labs: https://www.scip.ch/?labs.20161013
Siehe auch: 🔍
Eintrag
Erstellt: 02.05.2016 08:53Aktualisierung: 11.06.2024 12:06
Anpassungen: 02.05.2016 08:53 (82), 22.03.2019 14:03 (12), 27.07.2022 14:54 (5), 27.07.2022 14:55 (1), 11.06.2024 12:06 (15)
Komplett: 🔍
Cache ID: 216:99B:103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.