خانه » CVE-2025-10769

CVE-2025-10769

H2oai H2o-3 H2 JDBC Driver ImportSQLTable Deserialization

توسط Vulnerbyte Alerts
19 بازدید
هشدار سایبری CVE-2025-10769

چکیده

یک آسیب‌پذیری در نرم افزار h2o-3 تا نسخه 3.46.08 به دلیل فیلترینگ ناقص پارامترهای JDBC  شناسایی شده است. این ضعف امنیتی به مهاجم این امکان را می‌دهد که از طریق کامپوننت H2 JDBC Driver عملیات سریال‌زدایی (Deserialization) را انجام داده و به اجرای کد از راه دور (RCE) دست یابد. آسیب‌پذیری در اندپوینت /99/ImportSQLTable رخ می‌دهد، جایی که مهاجم با دستکاری پارامتر connection_url می‌تواند کد دلخواه خود را از طریق Frontend (رابط کاربری وب) اجرا کند.

توضیحات

آسیب‌پذیری CVE-2025-10769 در نرم‌افزار h2o-3 ،پلتفرم متن‌باز یادگیری ماشین، ناشی از فیلترینگ ناقص پارامترهای JDBC (پروتکلی برای ارتباط با پایگاه‌داده‌ها) در کامپوننت H2 JDBC Driver است. این آسیب‌پذیری طبق استانداردهای CWE-502 (عدم مدیریت ایمن داده‌ها برای سریال‌زدایی) و CWE-20 (اعتبارسنجی نادرست ورودی‌ها) طبقه‌بندی می‌شود.

این ضعف امنیتی در نسخه‌های 3.46.08 و احتمالاً تمام نسخه‌های قبلی نرم‌افزار موجود است و در اندپوینت /99/ImportSQLTable قرار دارد. در این آسیب‌پذیری، مهاجمان احراز هویت‌شده می‌توانند با دستکاری پارامتر connection_url در JDBC، عملیات سریال‌زدایی (Deserialization) را انجام داده و به اجرای کد از راه دور (RCE) دست یابند.

در این آسیب‌پذیری، فیلترینگ تنها سه کلمه‌کلیدی “init”، “script”و “shutdown” مسدود می‌کند اما این فیلترینگ ناکافی بوده و مهاجمان می‌توانند از تکنیک‌های bypass (دور زدن) این محدودیت ها برای فعال‌سازی حملات Deserialization-based Remote Code Execution (RCE) استفاده کنند.

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

کد اثبات مفهومی (POC) برای این آسیب‌پذیری به‌طور عمومی منتشر شده و شامل تست‌های لوکال و فرآیندهای اکسپلویت است. این کد به‌طور خاص نشان می‌دهد که چگونه JDBC URL می‌تواند دستکاری شود و عملیات Deserialization بر اساس H2 JDBC را فعال کند.

در حال حاضر، از سوی تیم توسعه دهنده h2oai پچ رسمی منتشر نشده و به اطلاع‌رسانی اولیه در مورد این آسیب پذیری پاسخی داده نشده است.

CVSS

Score Severity Version Vector String
5.3 MEDIUM 4.0 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
6.3 MEDIUM 3.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R
6.3 MEDIUM 3.0 CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R
6.5 2.0 AV:N/AC:L/Au:S/C:P/I:P/A:P/E:POC/RL:ND/RC:UR

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

Versions Product
affected at 3.46.08 h2o-3

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

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که “h2o-3” و “machine learning” را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Product
9 h2o-3 machine learning

 نتیجه گیری

این آسیب‌پذیری در h2o-3، به دلیل فیلترینگ ناقص پارامترهایJDBC ، تهدیدی قابل توجه برای سیستم‌های یادگیری ماشین ایجاد می‌کند که می‌تواند منجر به اجرای کد از راه دور از طریق frontend شود. برای کاهش ریسک و جلوگیری از بهره‌برداری، اقدامات زیر توصیه می‌شود:

  • محدودسازی دسترسی: دسترسی به اندپوینت /99/ImportSQLTableرا فقط به کاربران مجاز محدود کرده و از فایروال برای مسدود کردن درخواست های غیرمجاز استفاده نمایید.
  • اعتبارسنجی ورودی: قبل از پردازش پارامتر connection_url در درخواست‌ها، حتماً آن را به‌طور دقیق اعتبارسنجی کنید.
  • نظارت بر لاگ‌ها: لاگ‌های H2O را برای شناسایی درخواست‌های مشکوک به ImportSQLTable بررسی کنید.
  • غیرفعال‌سازی H2: در صورتی که H2 به‌عنوان پایگاه داده ضروری نیست، توصیه می‌شود از منابع داده امن‌تر مانند PostgreSQL استفاده کنید تا سطح امنیت کلی سیستم افزایش یابد.
  • آموزش کاربران: کاربران را در مورد ریسک (deserialization) و اهمیت محدودسازی دسترسی آگاه کنید.

اجرای این اقدامات به‌شدت ریسک اجرای کد از راه دور (RCE) و نقض امنیت را کاهش داده و باعث تقویت امنیت نرم‌افزار H2O-3 می‌شود. همچنین این آسیب‌پذیری بر اهمیت فیلترینگ جامع پارامترهای JDBC و جلوگیری از سریال‌زدایی در frontendهای مبتنی بر یادگیری ماشین تأکید دارد.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)

ورود اولیه از طریق اندپوینت شبکه‌ای /99/ImportSQLTable  انجام می‌شود. مهاجم با دستکاری پارامتر connection_url  در JDBC و دور زدن فهرست سیاه ناکافی، می‌تواند قابلیت‌های خطرناک درایور H2 را فعال کند و بدون نیاز به تعامل کاربر، زمینه اجرای کد را در سرویس h2o-3 فراهم سازد. الزام احراز هویت بسته به نحوه استقرار متفاوت است.

Execution (TA0002)

کد دلخواه در کانتکست فرآیند جاوای h2o-3 اجرا می‌شود؛ این اجرا می‌تواند از طریق مسیرهای مبتنی بر URLهای JDBC  و ویژگی‌های درایور H2 یا با سوء‌استفاده از مسیرهای دسریال‌سازیِ ورودی فعال گردد و به اجرای دستورات سیستم‌عامل منتهی شود.

Persistence (TA0003)

پس از دسترسی، مهاجم می‌تواند با استقرار اسکریپت/باینری روی میزبان، افزودن وظایف زمان‌بندی‌شده، تغییر پیکربندی سرویس یا تزریق کتابخانه جاوا، ماندگاری ایجاد کند تا پس از ری‌استارت نیز دسترسی حفظ شود.

Privilege Escalation (TA0004)

در صورتی‌که سرویس با حساب محدود اجرا شود، مهاجم می‌تواند با بهره‌برداری از سوء‌پیکربندی‌ها، اعتبارنامه های محلی یا ضعف‌های جانبی، سطح دسترسی را افزایش دهد؛ در سناریوهای بدپیکربندی، اجرای کد ممکن است از ابتدا با امتیاز بالا انجام شود.

Defense Evasion (TA0005)

دور زدن دفاع با مبهم‌سازی URL هایJDBC ، استفاده از معادل‌های نحوی برای عبور از فیلتر کلیدواژه‌ها، تقلید ترافیک عادی و دستکاری یا حذف لاگ‌های برنامه و سیستم برای کاهش ردپا می تواند انجام شود.

Credential Access (TA0006)

با دسترسی به میزبان، خواندن متغیرهای محیطی، فایل‌های پیکربندی، مخازن کلید و اعتبارنامه های اتصال به پایگاه‌داده/ابر ممکن است؛ این اطلاعات می‌تواند برای گسترش دسترسی یا خروج داده به‌کار رود.

Discovery (TA0007)

شناسایی نسخه  h2o-3، درایورهای نصب‌شده، توپولوژی شبکه، مسیرهای ذخیره‌سازی داده و نقش‌ها/توکن‌های سرویس جهت برنامه‌ریزی حرکات بعدی انجام می‌شود.

Lateral Movement (TA0008)

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

Collection (TA0009)

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

Exfiltration (TA0010)

انتقال داده‌های جمع‌آوری‌شده از طریق کانال‌های وب استاندارد، مقصدهای ابری پیکربندی‌شده یا ارتباطات خروجی مجاز سرویس انجام می‌گیرد و می‌تواند زمان‌بندی و قطعه‌بندی شود تا جلب توجه نکند.

Command and Control (TA0011)

برقراری کانال فرماندهی و کنترل بر بستر HTTP/HTTPS از داخل میزبان آلوده برای دریافت دستورات، به‌روزرسانی بار و ارسال نتایج میتواند انجام می‌شود.

Impact (TA0040)

پیامدها شامل اجرای کد از راه دور بر روی سرور، افشای داده‌های حساس، دست‌کاری نتایج/مدل‌ها و اختلال در خدمت‌رسانی است؛ در سناریوهای پیشرفته، خطر آلودگی زنجیره داده و تأثیر بر تصمیم‌گیری‌های وابسته به خروجی مدل‌ها نیز وجود دارد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-10769
  2. https://www.cvedetails.com/cve/CVE-2025-10769/
  3. https://vuldb.com/?submit.649728
  4. https://vuldb.com/?submit.649793
  5. https://vuldb.com/?id.325125
  6. https://vuldb.com/?ctiid.325125
  7. https://github.com/ez-lbz/poc/issues/51
  8. https://github.com/ez-lbz/poc/issues/51#issue-3391023368
  9. https://cwe.mitre.org/data/definitions/502.html
  10. https://cwe.mitre.org/data/definitions/20.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید

send
سوالی دارید؟
می تونید از من بپرسید 👋 ×