- شناسه CVE-2025-60012 :CVE
- CWE-20 :CWE
- yes :Advisory
- منتشر شده: مارس 13, 2026
- به روز شده: مارس 13, 2026
- امتیاز: 6.3
- نوع حمله: Improper input validation
- اثر گذاری: unauthorized file access
- حوزه: سرورهای اپلیکیشن
- برند: Apache Software Foundation
- محصول: Apache Livy
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری اعتبارسنجی نامناسب ورودیها (Improper Input Validation) در Apache Livy شناسایی شده است که میتواند منجر به دسترسی غیرمجاز به فایلها شود. این ضعف امنیتی در نسخههای 0.7.0 و 0.8.0 از Apache Livy هنگام اتصال به Apache Spark نسخه 3.1 یا بالاتر رخ میدهد. در این شرایط، کاربری که به رابطهای REST یا JDBC این سرویس دسترسی داشته باشد، میتواند با ارسال مقادیر پیکربندی خاص Spark به فایلهایی دسترسی پیدا کند که مجوز مشاهده آنها را ندارد.
توضیحات
آسیبپذیری CVE-2025-60012 در پروژه Apache Livy به دلیل ضعف در اعتبارسنجی ورودیها مطابق با CWE-20 رخ میدهد. Apache Livy سرویسی برای تعامل با Apache Spark از طریق رابطهای REST و JDBC فراهم میکند و به کاربران اجازه میدهد درخواستهای پردازش داده را به Spark ارسال کنند. در نسخههای آسیبپذیر، مکانیزم بررسی و محدودسازی مقادیر پیکربندی ارسالی به Spark بهدرستی پیادهسازی نشده است.
این ضعف زمانی بروز میکند که Apache Livy به Apache Spark نسخه 3.1 یا بالاتر متصل باشد. در چنین شرایطی، اگر یک درخواست شامل مقادیر خاصی از پیکربندی Spark باشد که از نسخه 3.1 به بعد پشتیبانی میشوند، ممکن است کاربر بتواند به فایلهایی دسترسی پیدا کند که خارج از محدوده مجوزهای تعریفشده برای او هستند. این مسئله به دلیل عدم اعتبارسنجی مناسب پارامترهای پیکربندی و عدم محدودیت کافی در سطح دسترسی فایلها رخ میدهد.
برای بهرهبرداری از این آسیبپذیری، مهاجم باید به یکی از رابطهای ارتباطی Apache Livy دسترسی داشته باشد. این رابطها شامل REST API (رابط برنامهنویسی مبتنی بر HTTP برای مدیریت و ارسال jobها) و JDBC (Java Database Connectivity، استانداردی برای اتصال برنامههای Java به پایگاه داده یا سرویسهای دادهای) هستند. در صورتی که مهاجم بتواند درخواستهایی حاوی مقادیر دلخواه پیکربندی Spark ارسال کند، امکان سوءاستفاده از این ضعف فراهم میشود.
بهرهبرداری از این آسیبپذیری از طریق شبکه و بدون نیاز به تعامل کاربر انجام میشود، اما مهاجم باید حداقل سطحی از دسترسی به سرویس Livy داشته باشد. در این سناریو، مهاجم میتواند با ارسال درخواستهایی که شامل پارامترهای پیکربندی خاص Spark هستند، محدودیتهای دسترسی فایل را دور بزند و به فایلهایی دسترسی پیدا کند که در شرایط عادی برای او قابل مشاهده یا خواندن نیستند. چنین عملکردی میتواند منجر به افشای دادههای حساس، تغییر در برخی پیکرندیهای پردازش داده و در مواردی ایجاد اختلال در دسترسپذیری سرویس شود.
این آسیبپذیری با انتشار نسخه 0.9.0-incubating (نسخهای که در مرحله توسعه و بررسی در پروژه Apache قرار دارد) پچ شده است.
CVSS
| Score | Severity | Version | Vector String |
| 6.3 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 0.7.0-incubating before 0.9.0-incubating | Apache Livy |
لیست محصولات بروز شده
| Versions | Product |
| Upgrade to version 0.9.0 or later | Apache Livy |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Apache Software Foundation و Apache Livy را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google (Total Pages) | Search Query (Dork) | Product |
| 1.540 | site:.ir “Apache Software Foundation” | Apache Software Foundation |
| 5 | site:.ir “Apache” “Livy” | Apache Livy |
نتیجه گیری
آسیبپذیری اعتبارسنجی نامناسب ورودیها با شدت متوسط در Apache Livy میتواند منجر به دسترسی غیرمجاز به فایلها در زمان اتصال به Apache Spark نسخههای 3.1 یا بالاتر شود. با توجه به انتشار پچ رسمی، اجرای اقدامات زیر برای جلوگیری آسیب پذیری و کاهش سطح ریسک ضروری است:
- بهروزرسانی نرمافزار: Apache Livy به نسخه 9.0-incubating یا نسخههای جدیدتر بهروزرسانی کنید. این اقدام مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند
- محدودسازی دسترسی: دسترسی به رابطهای REST و JDBC باید کنترل شود و از دسترسی عمومی یا کاربران غیرمجاز جلوگیری گردد.
- احراز هویت و مجوزدهی قوی: از مکانیزمهایی مانند Kerberos برای مدیریت و اعتبارسنجی دسترسی کاربران به سرویس Apache Livy استفاده شود.
- نظارت بر فعالیتها: لاگهای سیستم باید بهصورت مستمر بررسی شوند تا تلاشهای مشکوک در ارسال پیکربندیهای Spark شناسایی شوند.
- اعمال اصل حداقل دسترسی: سطح دسترسی فایلها و منابع سیستم باید متناسب با نیاز واقعی کاربران و سرویسها تنظیم شود.
اجرای این اقدامات، بهویژه بهروزرسانی فوری نرمافزار و محدودسازی دسترسی به رابطهای Livy، میتواند ریسک ناشی از این آسیبپذیری در محیطهای مبتنی بر Apache Spark را بهطور قابلتوجهی کاهش دهد.
امکان استفاده در تاکتیک های Mitre Attack (در زمان اجرای حمله)
Initial Access (TA0001)
برای دستیابی اولیه، مهاجم نیازمند دسترسی شبکه به سرویس Livy و داشتن اعتبارنامهای معتبر (هرچند با حداقل سطح دسترسی) است. با احراز هویت موفق و ارسال یک درخواست HTTP مجاز به سرور REST Livy، مهاجم میتواند گام نخست برای نفوذ را بردارد. وجود رابطهای مدیریتی یا APIهای بدون محدودیت نرخ (Rate Limiting) این مرحله را تسهیل میکند.
Execution (TA0002)
پس از دسترسی، مهاجم با ارسال یک درخواست برای ایجاد جلسه (Session) یا اجرای قطعه کد (Code Snippet) به همراه مقادیر پیکربندی مخرب Spark، باعث اجرای فرآیندی میشود که سعی در بارگذاری منابع از مسیرهای غیرمجاز دارد. موفقیت این مرحله به این بستگی دارد که سرویس Livy بدون اعمال محدودیت، پارامترهای ورودی کاربر را به عنوان تنظیمات نهایی Spark به کار گیرد.
Discovery (TA0007)
پس از اجرای فرآیند مخرب، مهاجم میتواند از طریق بررسی پیامهای خطای بازگشتی یا خروجی عملیات، وجود فایلهای هدف و ساختار دایرکتوری سرور را کشف کند. رفتار متفاوت سرویس در پاسخ به مسیرهای معتبر و نامعتبر به مهاجم کمک میکند تا نقشه راهی از فایلهای قابل دسترس تهیه کند.
Collection (TA0009)
مهاجم با شناسایی فایلهای حساس (مانند فایلهای پیکربندی، کلیدهای SSH یا دادههای ذخیرهشده در HDFS)، آنها را از طریق قابلیتهای جابجایی داده در Spark جمعآوری میکند. شرط لازم برای این مرحله، وجود قابلیت خواندن فایل و بازگرداندن محتوا از طریق کانال ارتباطی با Livy (مانند خروجی Job) است.
Impact (TA0040)
بهرهبرداری موفق از این آسیبپذیری میتواند منجر به نقض محرمانگی جدی دادهها شود. افشای فایلهای حساس سیستم میتواند زمینهساز حملات بعدی مانند حرکت جانبی (Lateral Movement) یا افزایش دسترسی (Privilege Escalation) شود. در بدترین سناریو، دسترسی به فایلهای حاوی کلیدهای رمزنگاری یا اعتبارنامهها میتواند به تسلط کامل مهاجم بر سیستم و از دست رفتن کامل اعتماد کاربران و رعایت نکردن قوانین حریم خصوصی بینجامد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-60012
- https://www.cvedetails.com/cve/CVE-2025-60012/
- https://lists.apache.org/thread/gpc85fwrgrbglpk9gm8tmcjzqnctx64w
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-60012
- https://vuldb.com/?id.350733
- http://www.openwall.com/lists/oss-security/2026/03/12/1
- https://nvd.nist.gov/vuln/detail/CVE-2025-60012
- https://cwe.mitre.org/data/definitions/20.html
گزارش اثبات آسیبپذیری CVE-2025-60012
اطلاعات آسیبپذیری
عنوان: دسترسی غیرمجاز به فایلها از طریق پیکربندی مخرب در Apache Livy
شناسه: CVE-2025-60012
وضعیت مشاوره: Advisory / Patch Available
نمره CVSS تقریبی: CVSS v3.1: 6.3 (Important)
محصول / نسخههای آسیبپذیر: Apache Livy
- Apache Livy (org.apache.livy:livy-server) نسخههای 7.0-incubating تا پیش از 0.9.0-incubating
- این آسیبپذیری بهطور خاص نسخههای 7.0 و 0.8.0 را در هنگام اتصال به Apache Spark نسخه 3.1 یا بالاتر تحت تأثیر قرار میدهد.
محیطهای درگیر
- سامانههای پردازش داده بزرگ (Big Data) که از Apache Livy به عنوان رابط REST/JDBC برای ارسالjobهای Spark استفاده میکنند.
- محیطهای تحلیل داده و علم داده که کاربران از طریق Livy به کلاسترهای Spark متصل میشوند.
- سرویسهای Multi-tenant که کاربران مختلف با سطوح دسترسی متفاوت به Livy متصل میشوند.
- زیرساختهای مبتنی بر ابر (Cloud) و داخلی (On-premise) که از Apache Spark و Livy در چرخه پردازش داده استفاده میکنند.
کامپوننتهای آسیبپذیر:
- رابط REST API که درخواستهای ایجاد جلسه (Session) و ارسال کد (Statement) را پردازش میکند.
- رابط JDBC که امکان اتصال ابزارهای تحلیل داده به Livy را فراهم میآورد.
- مکانیزم مدیریت پیکربندی Spark (Spark Configuration) که در زمان ایجاد جلسه، پارامترهای پیکربندی را از درخواست کاربر دریافت میکند.
- ماژول مدیریت دسترسی به فایلها که بهطور پیشفرض محدودیتهای امنیتی برای دسترسی به فایلهای سیستمی اعمال میکند.
ریشه مشکل (Root Cause Analysis)
ریشه اصلی این آسیبپذیری به عدم اعتبارسنجی کافی در پردازش مقادیر پیکربندی Spark بازمیگردد که کاربران از طریق درخواستهای REST یا JDBC به Livy ارسال میکنند. از نسخه Apache Spark 3.1 به بعد، قابلیتهای پیکربندی جدیدی معرفی شدهاند که به کاربران اجازه میدهد مسیرهای دسترسی به فایلها و منابع را مشخص کنند. Livy در نسخههای آسیبپذیر این مقادیر پیکربندی را بدون اعمال محدودیتهای امنیتی لازم به نشست Spark منتقل میکند. این نقص اعتبارسنجی ورودی باعث میشود که کاربری با دسترسی به رابط Livy، بتواند مقادیر پیکربندی دلخواهی را ارسال کند که در شرایط عادی میبایست توسط مدیر سیستم یا سرویسهای مجاز تعیین شوند.
در نتیجه، مهاجم میتواند با ارسال یک درخواست ایجاد جلسه (Create Session) حاوی پارامترهای پیکربندی هدفمند، به فایلهایی دسترسی یابد که مجوز دسترسی به آنها را ندارد. این رفتار نقض اصل کمترین دسترسی (Principle of Least Privilege) محسوب میشود و میتواند منجر به افشای اطلاعات حساس سیستمی، فایلهای پیکربندی، یا دادههای ذخیرهشده در مسیرهای محافظتشده گردد. همچنین این آسیبپذیری میتواند به عنوان نقطه ورود برای حملات بعدی مانند اجرای کد از راه دور یا افزایش سطح دسترسی در زیرساختهای پردازش داده مورد استفاده قرار گیرد.
بخش آسیبپذیر
رفتار ناامن سیستم
پذیرش و اعمال مقادیر پیکربندی Spark ارسالی از سوی کاربر بدون اعمال محدودیتهای امنیتی و فیلترهای لازم. این رفتار به مهاجم اجازه میدهد تا تنظیماتی را اعمال کند که مسیرهای دسترسی به فایلها را تغییر داده و محدودیتهای امنیتی پیشفرض را دور بزند.
نحوه سوءاستفاده مهاجم
مهاجم با داشتن دسترسی به رابطهای Livy (REST یا JDBC) اقدامات زیر را انجام میدهد:
- ارسال یک درخواست ایجاد جلسه (POST /sessions) حاوی مقادیر پیکربندی مخرب Spark که به فایلهای سیستمی یا مسیرهای محافظتشده اشاره دارد.
- استفاده از قابلیتهای پیکربندی معرفیشده در Spark 3.1 یا بالاتر که امکان تعریف مسیرهای دسترسی به فایلها را فراهم میآورند.
- ایجاد یک جلسه Spark با پیکربندی دستکاریشده که محدودیتهای دسترسی فایل را دور میزند.
- دسترسی غیرمجاز به فایلهای سیستمی، فایلهای پیکربندی سایر سرویسها یا دادههای ذخیرهشده در مسیرهای محدود.
نقش این آسیبپذیری در زنجیره حمله
این آسیبپذیری میتواند بهعنوان ابزاری برای افزایش دسترسی (Privilege Escalation) و افشای اطلاعات (Information Disclosure) در زنجیره حمله عمل کند. مهاجم با بهرهبرداری از این آسیبپذیری میتواند به اطلاعات حساسی مانند کلیدهای API، رمزهای عبور ذخیرهشده در فایلهای پیکربندی، یا دادههای اختصاصی سایر tenant (در محیطهای Multi-tenant) دست یابد. این دسترسی اولیه میتواند مبنایی برای حرکت عرضی (Lateral Movement) در زیرساخت، دستکاری jobهای پردازش داده، یا دستیابی به کنترل بیشتر روی کلاستر Spark باشد. با توجه به اینکه Livy معمولاً در محیطهای سازمانی به عنوان نقطه دسترسی به زیرساختهای پردازش داده بزرگ عمل میکند، این آسیبپذیری یک تهدید جدی برای محرمانگی دادهها محسوب میشود.
پیشنیازهای بهرهبرداری (Prerequisites)
- دسترسی مهاجم به رابط REST یا JDBC سرویس Apache Livy، که ممکن است از طریق شبکه داخلی سازمان یا در صورت پیکربندی ناایمن از طریق اینترنت قابل دسترسی باشد.
- امکان ارسال درخواستهای ایجاد جلسه (Create Session) یا تغییر پیکربندی جلسات موجود به سرویس Livy.
- وجود Apache Spark نسخه 1 یا بالاتر در زیرساخت هدف که قابلیتهای پیکربندی مورد سوءاستفاده را پشتیبانی میکند.
- عدم استفاده از مکانیزمهای محدودسازی پیکربندی (Configuration Whitelisting) در سطح Livy یا Spark.
رفتار مورد انتظار در حالت امن (Expected Secure Behavior)
در طراحی امن انتظار میرود:
- Livy مقادیر پیکربندی Spark را که کاربر ارسال میکند در برابر یک فهرست مجاز (Allow-list) اعتبارسنجی کرده و مقادیر غیرمجاز را رد کند.
- تنظیمات مرتبط با دسترسی به فایلها و منابع سیستمی از طریق پارامترهای پیکربندی قابل تغییر توسط کاربر نباشند و تنها توسط مدیر سیستم قابل تعیین گردند.
- Livy در مواجهه با درخواستهای حاوی پیکربندیهای غیرمجاز، خطا داده و از ایجاد جلسه جلوگیری کند (Fail-Closed).
- تفکیک واضحی بین تنظیمات امنیتی سطح کلاستر و تنظیمات قابلکنترل توسط کاربر در زمان ایجاد جلسه وجود داشته باشد.
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
اقدامات فوری برای کاهش ریسک
- بهروزرسانی فوری Apache Livy به نسخه 9.0 یا بالاتر که آسیبپذیری مذکور در آن برطرف شده است. این وصله شامل اعمال محدودیتهای لازم بر روی مقادیر پیکربندی قابل قبول از سوی کاربران میشود.
- در صورت عدم امکان بهروزرسانی فوری، محدودسازی دسترسی به رابطهای REST و JDBC Livy از طریق فایروال یا مکانیزمهای احراز هویت قوی (مانند Kerberos یا LDAP) جهت کاهش سطح حمله.
- پیکربندی Livy برای اعمال فهرست مجاز (Allow-list) بر روی پارامترهای پیکربندی Spark که کاربران مجاز به ارسال آنها هستند، در صورت پشتیبانی این قابلیت در نسخه مورد استفاده.
اقدامات کوتاهمدت / میانمدت برای کاهش ریسک
- بازبینی و پایش درخواستهای ایجاد جلسه (Create Session) به منظور شناسایی الگوهای غیرعادی شامل پارامترهای پیکربندی حساس (مانند پارامترهای مرتبط با مسیرهای فایل).
- پیادهسازی مکانیزمهای احراز هویت و مجوزدهی قوی برای دسترسی به Livy، از جمله استفاده از پروتکلهای امن مانند Kerberos یا ادغام با سیستمهای مدیریت هویت سازمانی (IAM).
- فعالسازی لاگبرداری تفصیلی از تمام درخواستهای ارسالی به Livy، بهویژه درخواستهایی که حاوی پارامترهای پیکربندی هستند، به منظور تسهیل تحلیل حوادث امنیتی.
اقدامات بلندمدت برای کاهش ریسک
- بازطراحی معماری امنیتی سرویسهای Livy و Spark با تمرکز بر تفکیک تنظیمات امنیتی سطح کلاستر از تنظیمات قابل تغییر توسط کاربر.
- پیادهسازی سیاستهای مدیریت پیکربندی امن (Secure Configuration Management) که تعیین میکند چه پارامترهایی توسط کاربران قابل تغییر هستند و چه پارامترهایی تنها توسط مدیر سیستم قابل تنظیم میباشند.
- افزایش سطح آگاهی تیمهای توسعه و بهرهبرداری در زمینه خطرات ناشی از پذیرش مستقیم پیکربندیهای کاربران در سرویسهای حیاتی و پیامدهای امنیتی آن.
- استفاده از ابزارهای تحلیل امنیتی پیکربندی و اسکن خودکار زیرساخت برای شناسایی و اصلاح پیکربندیهای ناایمن پیش از استقرار.
تشخیص و مانیتورینگ (Detection & Monitoring)
نشانههای تلاش برای سوءاستفاده
نشانههای زیر میتوانند بیانگر تلاش برای بهرهبرداری از آسیبپذیری موردنظر باشند و لازم است بهصورت مستمر پایش شوند:
- مشاهده درخواستهای ایجاد جلسه (Create Session) حاوی پارامترهای پیکربندی غیرمعمول یا حساس مانند پارامترهای مرتبط با مسیرهای فایل (files، spark.submit.pyFiles، spark.jars و پارامترهای مشابه).
- افزایش غیرعادی تعداد جلسات ایجادشده توسط یک کاربر خاص که ممکن است نشاندهنده تلاش برای یافتن پیکربندی قابل بهرهبرداری باشد.
- ثبت خطاها یا هشدارهای مرتبط با دسترسی به فایلهای غیرمجاز در لاگهای Spark یا Livy که میتواند حاکی از تلاش موفق یا ناموفق برای دسترسی به مسیرهای محافظتشده باشد.
- مشاهده دسترسی به فایلهای سیستمی حساس (مانند /etc/passwd، فایلهای پیکربندی Kubernetes یا فایلهای SSH) در طول اجرای jobهای Spark که در شرایط عادی انتظار نمیرود.
منابع پیشنهادی برای مانیتورینگ و پایش
بهمنظور تشخیص بهموقع و مؤثر تلاشهای سوءاستفاده، پایش منابع زیر توصیه میشود:
- لاگهای سرویس Apache Livyشامل لاگهای درخواستهای REST (مانند access log) و لاگهای خطا و هشدار که میتوانند جزئیات درخواستهای مشکوک را نشان دهند.
- لاگهای اجرای jobهای Spark (Spark Event Logs) که شامل اطلاعات مربوط به پیکربندی جلسات و فایلهای دسترسییافته در طول اجرا هستند.
- لاگهای سیستم فایل (File System Audit Logs) در صورتی که زیرساخت از ابزارهای پایش یکپارچگی فایلها (مانند Auditd در لینوکس) پشتیبانی میکند.
- راهکارهای SIEM با قابلیت تحلیل و همبستگی رویدادهای مربوط به Livy و Spark و شناسایی الگوهای حمله شناختهشده.
واکنش به حادثه (Incident Response)
اقدامات اضطراری که در صورت مشاهده نشانههای نفوذ باید اتخاذ شود:
- مسدودسازی فوری دسترسی کاربر یا منبع IP مشکوک به سرویس Livy تا زمان تکمیل بررسیهای اولیه.
- ایزولهسازی کلاستر Spark درگیر و بررسی جلسات فعال برای شناسایی هرگونه پیکربندی غیرمجاز که ممکن است همچنان فعال باشد.
- تحلیل و بررسی لاگهای Livy و Spark به منظور شناسایی دامنه حمله، پارامترهای پیکربندی استفادهشده، و فایلهایی که ممکن است در معرض دسترسی غیرمجاز قرار گرفته باشند.
- ارزیابی میزان اطلاعات افشاشده از طریق بررسی فایلهای دسترسییافته و دادههای حساس موجود در آنها.
- اعمال وصلههای امنیتی (ارتقا به نسخه 9.0 یا بالاتر) و بازبینی پیکربندیهای امنیتی پیش از بازگرداندن سرویس به چرخه عملیات.
جریان حمله (Attack Flow)
در این سناریوی حمله، مهاجم با شناسایی یک سرویس Apache Livy قابل دسترس، اقدام به ارسال درخواست ایجاد جلسه (POST /sessions) مینماید. این درخواست حاوی پارامترهای پیکربندی Spark است که بهگونهای تنظیم شدهاند تا محدودیتهای دسترسی به فایلها را دور بزنند. به دلیل عدم اعتبارسنجی کافی، Livy این مقادیر پیکربندی را مستقیماً به جلسه Spark ایجادشده اعمال میکند. در نتیجه، مهاجم میتواند از طریق ارسال کد (POST /sessions/{sessionId}/statements) یا از طریق ابزارهای متصل به JDBC، به فایلهای سیستمی یا مسیرهای محافظتشده دسترسی یابد. این فرآیند میتواند با استفاده از پیکربندیهای مختلف تکرار شود تا دسترسی به فایلهای هدفمند حاصل گردد. (شکل ۱)

شکل 1: نمودار جریان حمله
اثبات مفهوم (PoC) — کاملاً غیرمخرب
آزمایشگاه تخصصی Vulnerbyte این آسیبپذیری را در محیط ایزوله بررسی کرده است. اثبات مفهوم این آسیبپذیری شامل موارد زیر است:
- صرفاً توصیفی و آموزشی است و شامل کد Exploit واقعی نمیباشد.
- نشان میدهد که چگونه ارسال پارامترهای پیکربندی خاص Spark میتواند محدودیتهای دسترسی به فایل را در Apache Livy دور بزند.
- تشریح میکند که کدام دسته از پارامترهای پیکربندی (مانند پارامترهای مرتبط با مسیر فایلهای قابل اضافه شدن به classpath) میتوانند برای این حمله مورد استفاده قرار گیرند. (شکل ۲)

شکل 2: اثبات اجرای آسیب پذیری
رفع مسئولیت
این گزارش صرفاً با هدف آموزش، تحلیل فنی و ارتقای امنیت سازمانی تهیه شده است. هرگونه استفاده مخرب یا خارج از چارچوبهای قانونی از محتوای آن ممنوع است.
منابع (References)
- https://www.cve.org/CVERecord?id=CVE-2025-60012
- https://www.openwall.com/lists/oss-security/2026/03/12/1
- https://livy.incubator.apache.org
Apache Livy
CVE-2025-60012 – Unauthorized File Access via Malicious Spark Configuration Injection
Affects
- Apache Livy
- Versions:
- 0.7.0
- 0.8.0
- Only when used with:
- Apache Spark 3.1 or later
- Deployments where:
- Livy REST or JDBC interfaces are accessible to users,
- Users can submit jobs with custom Spark configuration parameters.
Description
CVE-2025-60012 is an authorization bypass / information disclosure vulnerability in Apache Livy when interacting with Apache Spark 3.1+.
The vulnerability arises because Livy does not sufficiently validate or restrict certain user-supplied Spark configuration values included in job submission requests. Spark 3.1 introduced additional configuration options that, when passed through Livy, can influence how file paths are resolved and accessed.
An attacker with access to Livy’s interfaces may supply malicious configuration parameters that cause Spark to access files outside of the intended permission boundaries. This can result in unauthorized file access, potentially exposing sensitive data.
The issue stems from insufficient validation of user-controlled configuration input before it is passed to Spark.
Attack Vector
Primary Attack Vector:
Remote / Authenticated via Livy REST or JDBC Interface
Attack Scenario:
- An attacker authenticates to Apache Livy (or accesses it if authentication is weak or absent).
- The attacker submits a job via:
- Livy REST API, or
- JDBC interface.
- The request includes crafted Spark configuration values supported in Spark 3.1+.
- Livy forwards these parameters to Spark without sufficient validation.
- Spark processes the configuration and accesses files beyond intended restrictions.
- The attacker gains access to unauthorized file contents.
Key Characteristics:
- Requires access to Livy interfaces (REST or JDBC).
- No user interaction beyond request submission.
- Exploitation occurs through legitimate job submission mechanisms.
- Relies on configuration injection rather than code execution.
Conditions Increasing Risk:
- Livy exposed to untrusted or multi-tenant users.
- Lack of strict access controls on job submission.
- Use of Spark 3.1+ with expanded configuration capabilities.
- Weak validation of user-supplied parameters.
Impact
Successful exploitation may allow an attacker to:
- Read files they are not authorized to access,
- Access sensitive system or application data,
- Bypass intended filesystem or permission boundaries,
- Potentially aid further attacks through information disclosure.
The vulnerability primarily impacts confidentiality, with indirect risk to system integrity depending on environment configuration.
Observed Exploitation & Threat Activity
- No confirmed widespread exploitation reported at the time of disclosure.
- The vulnerability is particularly relevant in:
- multi-tenant data processing environments,
- shared analytics platforms,
- enterprise data pipelines.
- Similar configuration injection issues have historically been used for data exfiltration.
Severity & Metrics
- Severity: High (context-dependent)
- Attack Vector: Network
- Privileges Required: Low to Medium (Livy access required)
- User Interaction: None
- Impact:
- Confidentiality: High
- Integrity: Low
- Availability: Low
Relevant CWE:
- CWE-285 – Improper Authorization
- CWE-20 – Improper Input Validation
- CWE-73 – External Control of File Name or Path
Patch & Vendor Status
- The issue is fixed in Apache Livy 0.9.0 and later.
- The fix introduces:
- stricter validation of Spark configuration parameters,
- improved enforcement of access boundaries.
Users are strongly advised to upgrade immediately.
Mitigation & Remediation
Immediate Actions
- Upgrade Apache Livy to version 0.9.0 or later.
- Restart Livy services after upgrading.
- Review recent job submissions for suspicious configurations.
Temporary Compensating Controls (If Upgrade Is Delayed)
- Restrict access to Livy REST and JDBC interfaces.
- Limit job submission capabilities to trusted users only.
- Apply input validation or filtering on allowed Spark configuration parameters.
- Use network segmentation to isolate Livy services.
These mitigations reduce risk but do not fully eliminate the vulnerability.
Detection & Hunting
Indicators of Potential Exploitation:
- Jobs accessing unexpected filesystem paths.
- Unusual or unauthorized file reads during Spark job execution.
- Suspicious configuration parameters in job submissions.
Recommended Monitoring:
- Livy request logs (REST/JDBC).
- Spark job execution logs.
- Filesystem access logs for abnormal read activity.
- Alerts for access to sensitive directories.
Post-Incident Response
If exploitation is suspected:
- Restrict access to Livy interfaces immediately.
- Collect logs from Livy and Spark.
- Identify and analyze suspicious job submissions.
- Apply the patched version (0.9.0+).
- Review and secure sensitive file locations.
- Rotate credentials if sensitive data exposure is suspected.
Summary Table
| Category | Details |
|---|---|
| Vulnerability | Unauthorized file access |
| Component | Livy → Spark configuration handling |
| Attack Vector | Authenticated user via REST/JDBC |
| Impact | Information disclosure |
| Affected Versions | Livy 0.7.0, 0.8.0 (with Spark 3.1+) |
| Fixed Version | 0.9.0 |
| Severity | High |
References
- Apache Livy Security Advisory – CVE-2025-60012
- Apache Spark Configuration Documentation
- CWE-73: External Control of File Name or Path
- NVD – CVE-2025-60012