Kai Ole Hartwig
6 Min. Lesezeit
Kritisch

laravel-mediable CVE-2026-93352: Unvollständiger Patch von CVE-2026-49972 öffnet RCE über .pht-Uploads

CVE-2026-93352 (CVSS 9.3, kritisch) betrifft laravel-mediable, ein Datei-Upload-Paket für Laravel. Der frühere Patch für CVE-2026-49972 ergänzte die Blockliste verbotener Dateiendungen um phpt, vergessen wurde jedoch pht. Apache führt auf Debian- und Ubuntu-Systemen über die Standard-FilesMatch-Konfiguration .pht-Dateien als PHP aus. Ein hochgeladenes .pht-Skript besteht alle Prüfungen in MediaUploader::verifyExtension() und File::sanitizeFileName() und wird bei einem späteren HTTP-Aufruf als PHP-Code ausgeführt. Betroffen sind die Versionen 7.0.0 und 7.0.1, behoben in 7.0.2.

TL;DR — 90 Sekunden

laravel-mediable verwaltet Datei-Uploads in Laravel-Anwendungen. Die Vorgänger-Lücke CVE-2026-49972 erlaubte das Hochladen ausführbarer Dateien; der Patch ergänzte die Blockliste in config/mediable.php um die Endung phpt, ließ aber pht unberücksichtigt. Da Apache unter Debian und Ubuntu .pht-Dateien standardmäßig als PHP interpretiert, genügt ein Upload mit dieser Endung für Remote Code Execution. Betroffen sind die Versionen 7.0.0 und 7.0.1, behoben in Version 7.0.2, die pht in die Blockliste aufnimmt.

Was ist das Problem?

laravel-mediable ist ein verbreitetes Composer-Paket für Datei- und Medien-Uploads in Laravel-Anwendungen. Die Vorgänger-Lücke CVE-2026-49972 ermöglichte das Hochladen von Dateien mit ausführbaren Endungen unter Umgehung der Erweiterungsprüfung. Der erste Patch reagierte darauf mit einer forbidden_extensions-Blockliste in config/mediable.php und nahm dort unter anderem phpt auf.

Die Endung pht wurde dabei übersehen. Apache-Webserver führen unter Debian und Ubuntu über die mitgelieferte FilesMatch-Direktive Dateien mit der Endung .pht standardmäßig als PHP aus, zusätzlich zu den bekannten Endungen .php und .phtml. Eine Datei mit der Endung .pht und PHP-Code als Inhalt besteht sowohl MediaUploader::verifyExtension() als auch File::sanitizeFileName(), da pht nicht in der Blockliste steht.

Landet die Datei in einem öffentlich erreichbaren Upload-Verzeichnis, führt ein nachfolgender HTTP-Aufruf der Datei den enthaltenen PHP-Code mit den Rechten des Webserver-Prozesses aus.

Wer ist betroffen?

CVEKomponenteBetroffenFixCVSS
CVE-2026-93352laravel-mediable (Blockliste)7.0.0–7.0.17.0.29.3 (kritisch)
CVE-2026-49972laravel-mediable (Vorgänger-Lücke)Versionen vor dem ersten PatchErster Patch (unvollständig)siehe Original-Advisory

Konkret betroffen sind Laravel-Anwendungen, die laravel-mediable 7.0.0 oder 7.0.1 einsetzen, einen Datei-Upload-Endpunkt über das Paket anbieten und auf einem Apache-Webserver unter Debian oder Ubuntu mit Standardkonfiguration laufen. Ob eine Authentifizierung für den Upload-Endpunkt nötig ist, hängt von der jeweiligen Anwendung ab; das Paket selbst schreibt keine Authentifizierung vor.

Auswirkungen

Ein erfolgreicher Angriff führt zu vollständiger Remote Code Execution mit den Rechten des Webserver-Prozesses. Damit sind in der Regel Lesezugriff auf Anwendungscode und Konfiguration, Zugriff auf Datenbank-Zugangsdaten und die Möglichkeit verbunden, weitere Schadsoftware nachzuladen oder die Anwendung dauerhaft zu kompromittieren.

Das Risiko ist besonders hoch, weil die Ausnutzung keine Kenntnis interner Strukturen erfordert: Ein Upload-Endpunkt, ein Standard-Apache unter Debian oder Ubuntu und eine nicht aktualisierte Paketversion genügen. Öffentlich erreichbare Upload-Funktionen, etwa für Profilbilder, Dokumente oder Support-Anhänge, sind typische Angriffsflächen.

Mitigation / Sofortmaßnahmen

Aktualisieren Sie laravel-mediable auf Version 7.0.2 oder neuer:

 

composer require plank/laravel-mediable:^7.0.2
php artisan config:clear
php artisan cache:clear

 

Ergänzen Sie zusätzlich, unabhängig vom Paket-Update, eine eigene, konservative Blockliste in config/mediable.php, statt sich allein auf die Standardkonfiguration des Pakets zu verlassen:

 

'forbidden_extensions' => [
    'php', 'phtml', 'phar', 'pht', 'phpt', 'php3', 'php4', 'php5', 'php7', 'phps',
],

 

Härten Sie zusätzlich die Apache-Konfiguration für Upload-Verzeichnisse, statt sich auf die Anwendungsebene allein zu verlassen:

 

# In einer .htaccess oder vhost-Konfiguration fuer das Upload-Verzeichnis
<FilesMatch "\.(php|phtml|pht|phps|phar)$">
    Require all denied
</FilesMatch>

 

Entfernen Sie zudem die Skriptausführung für das Upload-Verzeichnis grundsätzlich, etwa über eine separate Storage-Domain ohne PHP-Handler.

Detection / Prüfung

Prüfen Sie Ihre Upload-Verzeichnisse und Zugriffslogs auf Indikatoren:

 

# Nach hochgeladenen .pht-Dateien suchen
find storage/app/public -iname '*.pht'
find public/uploads -iname '*.pht' 2>/dev/null

# POST-Requests mit .pht-Dateinamen im Access-Log
grep -i '\.pht' access.log | grep -i 'POST'

# Nachfolgende GET-Requests auf .pht-Dateien, insbesondere kurz nach einem Upload
grep -i '\.pht' access.log | grep -i 'GET'

 

Prüfen Sie zusätzlich die installierte Paketversion:

 

composer show plank/laravel-mediable | grep versions

 

Finden Sie eine bereits hochgeladene .pht-Datei, gehen Sie von einer Kompromittierung aus und prüfen Sie Anwendungscode, Datenbank-Zugangsdaten und Serverprozesse auf weitere Veränderungen.

Betreiberempfehlung

Akut handeln, wenn: Sie laravel-mediable 7.0.0 oder 7.0.1 einsetzen, einen öffentlich erreichbaren Upload-Endpunkt über das Paket anbieten und Apache unter Debian oder Ubuntu ohne eigene .pht-Blockierung betreiben. Aktualisieren Sie umgehend auf 7.0.2 und prüfen Sie Upload-Verzeichnisse auf bereits abgelegte .pht-Dateien.

Beobachten genügt, wenn: Sie bereits auf 7.0.2 aktualisiert haben oder Ihre Upload-Verzeichnisse serverseitig bereits gegen Skriptausführung gehärtet sind, etwa über eine separate Storage-Domain. Ein Blick auf die Detection-Hinweise für die Zeit vor dem Update bleibt dennoch empfehlenswert.

Häufig gestellte Fragen zu CVE-2026-93352

Warum wurde .pht beim ersten Patch übersehen?+

Der erste Patch orientierte sich an geläufigen PHP-Endungen wie phtml und phpt. Die Endung pht ist deutlich seltener gebräuchlich, wird von Apache unter Debian und Ubuntu jedoch ebenso als PHP interpretiert. Diese Lücke in der Blockliste blieb im ersten Patch unentdeckt.

Reicht ein Update auf 7.0.2, oder muss ich zusätzlich die Serverkonfiguration ändern?+

Das Update auf 7.0.2 schließt die konkrete Lücke. Eine zusätzliche Server-seitige Härtung, etwa eine eigene FilesMatch-Regel oder eine separate Storage-Domain ohne PHP-Handler, schützt zusätzlich vor zukünftigen, heute noch unbekannten Erweiterungen mit demselben Muster.

Sind auch Nginx-Installationen betroffen?+

Die konkrete Ausnutzung über .pht als PHP-Handler betrifft Apache-Standardkonfigurationen unter Debian und Ubuntu. Nginx interpretiert .pht nicht automatisch als PHP, es sei denn, die PHP-FPM-Konfiguration wurde entsprechend erweitert. Die zugrunde liegende Lücke in der Blockliste sollte unabhängig vom Webserver durch das Update behoben werden.

Gibt es öffentliche Exploits oder Berichte über aktive Ausnutzung?+

Sicherheitsforschende haben die Lücke im Detail dokumentiert, einschließlich einer Shodan-Suchanfrage zur Identifikation potenziell verwundbarer Instanzen. Zum Zeitpunkt dieses Beitrags lagen keine bestätigten Berichte über aktive Ausnutzung in freier Wildbahn vor.

Muss der Upload-Endpunkt authentifiziert sein, damit die Lücke ausnutzbar ist?+

Das hängt von der jeweiligen Anwendung ab. laravel-mediable selbst erzwingt keine Authentifizierung für Upload-Endpunkte; ob ein Angreifer sich anmelden muss, bestimmt ausschließlich die Anwendung, die das Paket einbindet.

Fazit

CVE-2026-93352 zeigt ein bekanntes Muster bei Blocklisten gegen Datei-Uploads: Eine unvollständige Liste verbotener Endungen ist nur so sicher wie ihre schwächste Lücke, und Webserver-Standardkonfigurationen kennen oft mehr ausführbare Endungen, als Anwendungsentwickler auf dem Schirm haben. Wer Datei-Uploads anbietet, sollte zusätzlich zur Anwendungsebene auch die Serverkonfiguration härten, statt sich allein auf eine Blockliste zu verlassen.

Quellen

Ich härte PHP- und Laravel-Anwendungen laufend gegen Upload- und Injection-Schwachstellen.

Audits von Upload-Endpunkten, Härtung von Webserver-Konfigurationen, Absicherung von Composer-Abhängigkeiten.

Plattform-Betrieb statt Beratung auf Papier: Ich prüfe, patche und härte Ihre Infrastruktur laufend.

Kontakt aufnehmen →

Über den Autor

Foto von Kai Ole Hartwig.

Kai Ole Hartwig

Freiberuflicher DevSecOps-Berater · OnlyOle Consulting

Programmiert seit 2002 – autodidaktisch gelernt, 2012 mit KO-Web selbständig gemacht. Über 100 Projekte, Fokus auf Security, Performance, Automatisierung und Qualität. Heute freiberuflich: DevSecOps-Beratung, Schulungen und Softwareentwicklung.