RCE بدون احراز هویت تو Splunk Enterprise
خلاصهٔ کاملتر
به گفتهٔ تیم watchTowr، شرکت Splunk تو خرداد امسال یه اطلاعیهٔ امنیتی برای CVE-2026-20253 منتشر کرد؛ یه آسیبپذیری با امتیاز CVSS برابر ۹.۸ که نیازی به احراز هویت نداره. خودِ اسپلانک یه پلتفرم جمعآوری و تحلیل لاگ و رویداده که خیلی وقتا بهعنوان ابزار امنیتی (SIEM) استفاده میشه، برای همین آسیبپذیر بودن خودش یهکم کنایهآمیزه.
مشکل تو چیزی به اسم «PostgreSQL Sidecar Service» هست؛ یه سرویس جانبی که از نسخهٔ ۱۰ به اسپلانک اضافه شده. نکتهٔ مهم اینه که این سرویس فقط روی نسخهٔ نصبشده روی AWS بهصورت پیشفرض فعاله و بیرون از جعبه آسیبپذیره؛ روی نصب دستی ویندوز یا نصب نشده یا فعال نیست.
به گفتهٔ نویسنده، این سرویس روی لوپبک و پورت 5435 گوش میده و مجموعهای از اندپوینتها زیر مسیر /v1/postgres/ داره، از جمله /recovery/backup و /recovery/restore. جالب اینجاست که وباپلیکیشن اصلی اسپلانک درخواستها رو به این سرویس داخلی پراکسی میکنه، پس چیزی که قرار بود فقط محلی باشه عملاً از بیرون قابل دسترسه.
ریشهٔ اصلی باگ اینه که این اندپوینت هیچ کنترل احراز هویتی نداره و هر یوزرنیمی رو که تو هدر Authorization بذاری مستقیم به pg_dump پاس میده. اولش فقط یه فایل خالی ساخته میشد، ولی چون پارامتر backupFile فیلتر مسیر نمیشد، میشد با پیمایش مسیر هر فایلی رو هر جای سیستم ساخت یا خالی کرد.
نویسنده میگه قدم بعدی اینجوری بود که pg_dump اجازه میده اسم دیتابیس یه connection string کامل باشه که گزینههای خط فرمان رو بازنویسی میکنه. با این ترفند مهاجم میتونه پارامترهایی مثل hostaddr و passfile رو تزریق کنه و اسپلانک رو مجبور کنه به دیتابیس مهاجم وصل بشه. بدتر اینکه یه فایل .pgpass با اعتبار کاربر postgres_admin روی سیستم پیدا شد که در رو کامل باز میکرد.
با ترکیب اندپوینتهای backup و restore و قابلیت lo_export تو PostgreSQL، تیم تونست محتوای دلخواه روی فایلسیستم بنویسه و آخرش با بازنویسی یه اسکریپت پایتونی که اسپلانک خودش اجرا میکنه، به اجرای کد از راه دور کامل با دسترسی کاربر splunk برسه. watchTowr یه ابزار تشخیص (Detection Artefact Generator) هم منتشر کرده که فقط آسیبپذیر بودن سیستم رو چک میکنه.
نکات کلیدی:
- CVE-2026-20253 یه RCE بدون احراز هویت با امتیاز ۹.۸ روی Splunk Enterprise نسخهٔ ۱۰ به بالاست
- ریشهٔ مشکل نبودِ احراز هویت روی سرویس جانبی PostgreSQL و فوروارد شدن یوزرنیم دلخواه به pg_dump هست
- نصب روی AWS بهصورت پیشفرض آسیبپذیره، ولی نصب دستی ویندوز معمولاً نه
- زنجیرهٔ حمله از نوشتن فایل دلخواه و تزریق connection string و فایل .pgpass به اجرای کد میرسه
- راهکار: هرچه زودتر به نسخهٔ وصلهشده آپدیت کنید و دسترسی شبکهای به سرویس رو محدود کنید




