چکیده

در پلتفرم متن‌باز n8n، اگر به‌صورت خودمیزبان (Self-hosted) اجرا شود و از حالت قدیمی Code Node استفاده گردد، یک ضعف امنیتی دیده می‌شود. در این شرایط، کاربران واردشده‌ای که اجازه ویرایش گردش‌کار دارند می‌توانند از توابع داخلی سوءاستفاده کرده و با سطح دسترسی برنامه n8n به فایل‌های سرور دسترسی پیدا کنند یا آن‌ها را تغییر دهند. نتیجه این مشکل می‌تواند افشای اطلاعات حساس، دستکاری داده‌ها و تغییر فایل‌های سیستمی باشد.

توضیحات

آسیب‌پذیری CVE-2025-68697 در پلتفرم متن‌باز اتوماسیون گردش‌کار n8n به دلیل وجود دو مشکل امنیتی ایجاد شده است: نخست، مدیریت نادرست سطح دسترسی کاربران (CWE-269) و دوم، در دسترس قرار گرفتن متد یا تابع داخلی خطرناک (CWE-749). این مشکل در نسخه‌های خودمیزبان n8n و زمانی بروز می‌کند که Code Node با حالت اجرای قدیمی جاوااسکریپت (Legacy یا non-task-runner) فعال باشد.

در این حالت، کاربران احراز هویت‌شده با مجوز ویرایش گردش‌کار (workflow editing access) می‌توانند توابع داخلی کمکی (internal helper functions) را از داخل Code Node فراخوانی کنند. این امر به آن‌ها اجازه می‌دهد تا عملیات خواندن و نوشتن دلخواه روی فایل‌سیستم میزبان (host filesystem) را با سطح دسترسی فرآیند n8n انجام دهند. این دسترسی تحت محدودیت‌های اعمال‌شده در نمونه و مجوزهای سیستم‌عامل یا کانتینر قرار دارد.

نکته حائز اهمیت این است که از نسخه 1.2.1 به بعد، دسترسی به فایل‌های دایرکتوری فضای کار n8n به‌طور پیش‌فرض مسدود شده است (N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=true)، اما سایر بخش‌های فایل‌سیستم بدون محدودیت باقی می‌مانند مگر آن که محدودیت‌های اضافی توسط مدیر سیستم اعمال شوند.

بهره‌برداری از این آسیب‌پذیری ساده و قابل خودکارسازی است؛ مهاجم تنها نیاز به یک حساب کاربری معتبر با مجوز ویرایش گردش‌کار دارد و بدون نیاز به تعامل کاربر می‌تواند از راه دور اقدام به خواندن و نوشتن فایل‌ها کند. پیامدهای این ضعف شامل افشای محدود اطلاعات حساس، از جمله فایل‌های پیکربندی قرارگرفته خارج از دایرکتوری خانگی n8n (.n8n) و همچنین امکان تغییر، تزریق یا ایجاد فایل‌های مخرب روی سیستم است.

این آسیب‌پذیری تنها در نمونه‌های self-hosted که حالت legacy برای Code Node فعال باشد، قابل بهره‌برداری است و در نمونه‌های ابری (cloud-hosted) تأثیرگذار نیست.

این ضعف با انتشار نسخه 2.0.0 که task runners به‌طور پیش‌فرض برای اجرای Code Node فعال شده‌اند، به‌طور کامل پچ شده است. علاوه بر این، در نسخه‌های 1.71.0 و بالاتر، مدیران می‌توانند با تنظیم متغیر محیطی N8N_RUNNERS_ENABLED=true قابلیت اجرای Task Runners را فعال کنند و بدین ترتیب از وقوع این آسیب‌پذیری جلوگیری نمایند.

CVSS

Score Severity Version Vector String
7.1 HIGH 3.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N

لیست محصولات آسیب پذیر

Versions Product
affected at < 2.0.0 n8n

لیست محصولات بروز شده

Versions Product
2.0.0 n8n

 استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که n8n را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
59,000 site:.ir” n8n” n8n

نتیجه گیری

این آسیب‌پذیری با شدت بالا در n8n امکان خواندن و نوشتن فایل‌های دلخواه را برای کاربران احراز هویت‌شده با دسترسی ویرایش گردش‌کار فراهم می‌کند و می‌تواند منجر به افشای اطلاعات حساس یا دستکاری فایل‌های سیستم شود. با توجه به انتشار پچ امنیتی رسمی، اجرای اقدامات زیر برای جلوگیری از آسیب پذیری و کاهش ریسک ضروری است:

  • به‌روزرسانی فوری: تمامی نمونه‌های خود میزبان (Self-hosted) n8n را به نسخه 0.0 یا بالاتر به‌روزرسانی کنید. این اقدام قطعی‌ترین راهکار است، زیرا در این نسخه اجرای Code Node به‌صورت پیش‌فرض از طریق task runners انجام می‌شود و حالت legacy به‌طور کامل حذف شده است. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • فعال‌سازی محیط اجرای ایزوله در نسخه‌های قدیمی‌تر: در نسخه‌های 71.0 و بالاتر، متغیر محیطی N8N_RUNNERS_ENABLED=true را تنظیم کنید تا اجرای Code Node در محیط ایزوله task-runner انجام شود.
  • محدودسازی دسترسی به فایل‌سیستم: متغیر N8N_RESTRICT_FILE_ACCESS_TO را به یک دایرکتوری اختصاصی (مانند ~/.n8n-files) تنظیم کرده و اطمینان حاصل کنید این مسیر شامل داده‌های حساس نباشد. همچنین مقدار پیش‌فرض N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=true را حفظ کنید تا دسترسی به دایرکتوری فضای کاری n8n (.n8n) و فایل‌های پیکربندی مسدود باقی بماند.
  • غیرفعال کردن Nodeهای پرریسک: اگر ویرایشگران گردش‌کار کاملاً مورد اعتماد نیستند، Code Node و سایر Nodeهای پرریسک را با استفاده از متغیر NODES_EXCLUDE غیرفعال کنید.
  • اصل حداقل دسترسی: مجوز ایجاد و ویرایش گردش‌کار را تنها به کاربران کاملاً مورد اعتماد محدود کنید و از حساب‌های با دسترسی پایین برای عملیات روزمره استفاده نمایید.
  • ایزوله‌سازی اجرا: n8n را در محیط‌های کانتینری ایزوله مانند Docker با حداقل مجوزهای سیستم‌عامل اجرا کنید تا دامنه دسترسی فرآیند به فایل‌سیستم و منابع سیستم محدود شود.
  • نظارت و ثبت لاگ: تغییرات گردش‌کارها، اجرای Code Node و عملیات دسترسی به فایل‌ها را به‌صورت مستمر نظارت کرده و از لاگ‌های امنیتی یا سامانه‌های تشخیص نفوذ (IDS) برای شناسایی عملکردهای مشکوک استفاده کنید.

اجرای سریع به‌روزرسانی و اعمال راهکارهای موقتی، ریسک بهره‌برداری موفق از این آسیب‌پذیری را به حداقل رسانده و امنیت استقرارهای مبتنی بر n8n را به‌طور قابل‌توجهی افزایش می‌دهد.

امکان استفاده در تاکتیک های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)
در سناریوی بهره‌برداری از CVE-2025-68697، دسترسی اولیه از مسیر کاملاً مشروع ولی ناایمن به دست می‌آید؛ به این معنا که مهاجم از پیش یک حساب کاربری معتبر در self-hosted n8n دارد و مجوز ویرایش گردش‌کارها برای او تعریف شده است. در زمان اجرای حمله، هیچ نیازی به دور زدن مکانیزم احراز هویت یا سوءاستفاده از نقص شبکه‌ای وجود ندارد و صرف فعال بودن Code Node در حالت Legacy، به‌همراه عدم اعمال محدودیت‌های سخت‌گیرانه روی توابع داخلی، شرایط لازم را فراهم می‌کند. به بیان دیگر، ترکیب سطح دسترسی منطقی کاربر، پیکربندی پیش‌فرض یا نادرست سامانه و فعال بودن مسیر کدنویسی قدیمی، نقطه ورود حمله را بدون ایجاد نشانه‌های غیرعادی مهیا می‌سازد.

Privilege Escalation (TA0004)
پس از ورود به محیط ویرایش گردش‌کار، مهاجم می‌تواند از این آسیب‌پذیری برای ارتقای عملی سطح دسترسی خود استفاده کند؛ ارتقایی که نه در قالب تغییر نقش کاربری، بلکه از طریق دستیابی به قابلیت‌هایی فراتر از انتظار آن نقش رخ می‌دهد. در این مرحله، فراخوانی توابع داخلی خطرناک از داخل Code Node باعث می‌شود عملیات خواندن یا نوشتن فایل با سطح دسترسی فرآیند n8n انجام شود. شرط تحقق این تاکتیک آن است که فرآیند n8n با مجوزهای نسبتاً گسترده روی سیستم‌عامل یا کانتینر اجرا شده باشد و مکانیزم‌هایی مانند sandbox واقعی یا محدودسازی جامع فایل‌سیستم فعال نباشند؛ در چنین وضعیتی، مرز بین دسترسی کاربر و دسترسی سرویس عملاً از بین می‌رود.

Discovery (TA0007)
با در اختیار داشتن امکان تعامل مستقیم با فایل‌سیستم، مهاجم می‌تواند به‌صورت کنترل‌شده به شناسایی ساختار محیط میزبان بپردازد. این مرحله شامل بررسی مسیرها، شناسایی فایل‌های پیکربندی و درک نحوه استقرار سرویس است، بدون آنکه نیاز به ابزارهای خارجی یا دسترسی سیستمی مستقیم وجود داشته باشد. شرط کلیدی این گام، آزاد بودن دسترسی به بخش‌هایی از فایل‌سیستم خارج از دایرکتوری محدودشده n8n و نبود ثبت یا پایش دقیق فعالیت‌های Code Node است. نتیجه این فرایند، افزایش آگاهی مهاجم از محیط و آماده‌سازی بستر برای اقدامات مخرب‌تر بعدی خواهد بود.

Collection (TA0009)
در ادامه، قابلیت خواندن فایل‌ها می‌تواند برای جمع‌آوری داده‌های حساس مورد استفاده قرار گیرد؛ داده‌هایی که ممکن است شامل تنظیمات، اطلاعات اتصال یا سایر فایل‌های متنی مهم باشند. این تاکتیک زمانی عملی می‌شود که فایل‌های موردنظر به‌صورت رمزنگاری‌نشده یا با مجوز خواندن برای فرآیند n8n در دسترس باشند. مهاجم در این مرحله الزاماً حجم بالایی از داده را استخراج نمی‌کند، بلکه تمرکز بر فایل‌هایی است که ارزش اطلاعاتی بالاتری دارند و می‌توانند در مراحل بعدی حمله یا تحلیل محیط نقش کلیدی ایفا کنند.

Impact (TA0040)
پیامد نهایی فراتر از یک افشای ساده اطلاعات است و می‌تواند به تغییر یا تخریب وضعیت عملیاتی سامانه منجر شود. امکان نوشتن دلخواه فایل‌ها با سطح دسترسی سرویس، ریسک دستکاری پیکربندی، ایجاد فایل‌های ناخواسته یا تضعیف یکپارچگی سیستم را به همراه دارد و در سناریوهای شدیدتر می‌تواند زمینه‌ساز اختلال در عملکرد گردش‌کارها یا حتی زنجیره‌ای از مشکلات امنیتی ثانویه شود. این اثرگذاری معمولاً تدریجی و وابسته به میزان دسترسی فرآیند n8n است، اما در هر صورت نشان‌دهنده نقض جدی اصل تفکیک دسترسی و اعتماد در معماری سامانه خواهد بود.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-68697
  2. https://www.cvedetails.com/cve/CVE-2025-68697/
  3. https://github.com/n8n-io/n8n/security/advisories/GHSA-j4p8-h8mh-rh8q
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-68697
  5. https://vuldb.com/?id.338483
  6. https://nvd.nist.gov/vuln/detail/CVE-2025-68697
  7. https://cwe.mitre.org/data/definitions/269.html
  8. https://cwe.mitre.org/data/definitions/749.html

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *