- شناسه CVE-2025-27148 :CVE
- CWE-379 / CWE-378 :CWE
- yes :Advisory
- منتشر شده: فوریه 25, 2025
- به روز شده: فوریه 25, 2025
- امتیاز: 8.8
- نوع حمله: Unknown
- اثر گذاری: Privilege Escalation
- حوزه: برنامه نویسی
- برند: gradle
- محصول: gradle
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
یک آسیبپذیری در گرادل 8.12.0 شناسایی شده است. این آسیبپذیری به بخشی از کد Setting Handler مربوط میشود. ایجاد تغییرات در این کد باعث بروز مشکل در فایلهای موقت میشود. این آسیبپذیری با شناسه CVE-2025-27148 ثبت شده است. برای اجرای این حمله نیاز به دسترسی محلی است. توصیه میشود که بخش آسیبدیده بهروز شود.
توضیحات
این مشکل طبق CWE-378 طبقهبندی شده است که نشان میدهد باز کردن فایلهای موقت بدون اقدامات یا کنترلهای مناسب میتواند باعث آسیبپذیری فایل، محتوای آن و هر عملکردی که تحت تأثیر قرار میگیرد، شود. این مسئله میتواند بر محرمانگی، یکپارچگی و دسترسپذیری تأثیر بگذارد.
در سیستمهای مشابه یونیکس، دایرکتوری موقت سیستم ممکن است با دسترسیهای باز ایجاد شود که به کاربران مختلف اجازه میدهد فایلها را در آن ایجاد ویا حذف کنند. این مقداردهی اولیه کتابخانه ممکن است به یک آسیبپذیری در افزایش دسترسی محلی از طریق حملهای که فایلها را در دایرکتوری موقت سیستم به سرعت حذف و دوباره ایجاد میکند، تبدیل شود. build هایی که به نسخههای net.rubygrapefruit:native-platform قبل از 0.22-milestone-28 وابسته هستند، ممکن است دچار این آسیبپذیری شوند.
این مشکل در نسخه 0.22-milestone-28رفع شد و از آن پس مقداردهی اولیه کتابخانه اجباری است و دیگر از دایرکتوری موقت سیستم استفاده نمیشود، مگر اینکه چنین مسیری برای مقداردهی اولیه ارائه شود. نسخه گرادل 8.12 تنها همان نسخه خاص دارای مسیرهای کدی بود که مقداردهی اولیه کتابخانه بومی زیرساختی از مسیر پیشفرض استفاده میکرد و به کپی کردن موارد باینری به دایرکتوری موقت سیستم متکی بود. هر اجرای گرادل این آسیبپذیری را آشکار میکرد.
کاربران ویندوز یا نسخههای جدید macOS آسیبپذیر نیستند، همچنین کاربران سیستمهای مشابه یونیکس که از گزینه sticky یا noexec در دایرکتوری موقت سیستم خود استفاده میکنند، آسیبپذیر نیستند. این مشکل در گرادل 8.12.1 برطرف شده است و نسخه گرادل 8.13 نیز بهروزرسانیهای لازم را برای رفع این باگ انجام داده است.
چند راهحل جایگزین برای این مشکل وجود دارد. در سیستمعاملهای مشابه یونیکس، اطمینان حاصل کنید که گزینه “sticky” فعال باشد. این گزینه تنها به کاربر اصلی (یاRoot ) اجازه میدهد که یک فایل را حذف کند. مونت کردن(Mounting) tmp/ بهعنوان noexec از اجرای گرادل 8.12 جلوگیری میکند. افرادی که قادر به تغییر دسترسیهای دایرکتوری موقت سیستم نیستند، میتوانند دایرکتوری موقت جاوا را با تنظیم خاصیت سیستم java.io.tmpdir جابجا کنند. مسیر جدید باید دسترسیها را محدود کند تا فقط به کاربر مربوط به buildدسترسی داده شود.
اکسپلویت این نقص ساده ارزیابی شده است و حمله باید بهصورت محلی انجام شود.
CVSS
Score | Severity | Version | Vector String |
8.8 | HIGH | 3.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
لیست محصولات آسیب پذیر
Versions | Product |
affected at 8.12 | gradle |
لیست محصولات بروز شده
Versions | Product |
8.12.1 | gradle |
8.13.0 | gradle |
نتیجه گیری
ارتقا به نسخههای 8.12.1 یا 8.13.0 این آسیبپذیری را برطرف میکند.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-27148
- https://www.cvedetails.com/cve/CVE-2025-27148/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-27148
- https://vuldb.com/?id.296841
- https://nvd.nist.gov/vuln/detail/CVE-2025-27148
- https://cwe.mitre.org/data/definitions/379.html
- https://cwe.mitre.org/data/definitions/378.html
- https://github.com/gradle/gradle/security/advisories/GHSA-465q-w4mf-4f4r
- https://github.com/gradle/gradle/security/advisories/GHSA-89qm-pxvm-p336
- https://github.com/gradle/native-platform/security/advisories/GHSA-2xxp-vw2f-p3x8
- https://github.com/gradle/native-platform/blob/574dfe8d9fb546c990436468d617ab81c140871d/native-platform/src/main/java/net/rubygrapefruit/platform/internal/NativeLibraryLocator.java#L68-L78