- شناسه CVE-2025-1009 :CVE
- CWE-416 :CWE
- yes :Advisory
- منتشر شده: فوریه 4, 2025
- به روز شده: فوریه 4, 2025
- امتیاز: 9.8
- نوع حمله: Use after free
- اثر گذاری: Arbitrary code execution(ACE)
- حوزه: مرورگرها
- برند: Mozilla
- محصول: Firefox
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری استفاده پس از آزادسازی حافظه (Use‑After‑Free) در فرآیند پردازش دادههای XSLT در مرورگر Firefox و Thunderbird شناسایی شده است. مهاجم از راه دور میتواند با ارسال دادههای XSLT دستکاریشده، شرایط استفاده پس از آزادسازی را در کلاس txMozillaXSLTProcessor ایجاد کند. این وضعیت منجر به کرش قابل بهرهبرداری شده و در برخی سناریوها میتواند زمینه اجرای کد را فراهم کند.
توضیحات
آسیبپذیری CVE‑2025‑1009 از نوع استفاده پس از آزادسازی حافظه (Use‑After‑Free) مطابق با CWE‑416 در ماژول پردازش XSLT (Extensible Stylesheet Language Transformations) مرورگرهای Firefox و کلاینت ایمیل Thunderbird است. این ضعف در کلاس txMozillaXSLTProcessor رخ میدهد؛ این کلاس مسئول پردازش ، ایمپورت (import) و کامپایل استایلشیتهای XSLT است و ضعف از طریق دستکاری چرخه حیات اسناد XML (XML Document Lifecycle) و فراخوانیهای Observer قابل فعالسازی است.
مهاجم میتواند با طراحی یک زنجیره مخرب DOM/XSLT، وضعیت داخلی پردازشگر را ناهماهنگ کرده و باعث دسترسی به اشارهگر آزاد شده شود. فرآیند فعالسازی استفاده پس از آزادسازی به ترتیب زیر است:
- فراخوانی txMozillaXSLTProcessor::ImportStylesheet روی یک node به جای سند کامل: این عمل باعث مقداردهی اولیه سه عضو کلیدی کلاس یعنی mStylesheet, mStylesheetDocument و mEmbeddedStylesheetRoot میشود.
- جدا کردن mEmbeddedStylesheetRoot از سند اصلی با استفاده از adoptNode: این کار اجازه میدهد تا mStylesheetDocument آزاد شود، زیرا در غیر این صورت mEmbeddedStylesheetRoot یک ارجاع حفظ کننده عمر آبجکت بود و مانع آزادسازی آن میشد.
- تغییر محتوای mEmbeddedStylesheetRoot: این تغییر باعث شکست کامپایل بعدی میشود و observerهایی مانند txMozillaXSLTProcessor::ContentWillBeRemoved مقدار mStylesheet را به NULL تنظیم میکنند.
- حذف تمام ارجاعات دیگر به سند قبلی و اجرای Garbage Collector : فراخوانی NodeWillBeDestroyed انجام شده و mCompileResult به حالت FAILED تغییر میکند، در حالی که mStylesheetDocument و mEmbeddedStylesheetRoot به NULL میرسند. مقدار mCompileResult = FAILED باعث اجرای مسیر پاکسازی میشود، اما اشارهگر داخلی به سند آزادشده همچنان باقی میماند.
- فراخوانی مجدد ImportStylesheet با سند جدید و سپس Reset(): در این مرحله، فراخوانی mStylesheetDocument->RemoveMutationObserver(this) روی آبجکت آزادشده رخ میدهد و باعث استفاده از حافظه آزادشده (heap use-after-free) میشود.
این زنجیره بهسادگی قابل خودکارسازی است و مهاجم میتواند تنها با بازدید کاربر از صفحه مخرب ، بدون نیاز به احراز هویت یا تعامل کاربر، شرایط استفاده پس از آزادسازی را فعال کند. اجرای موفق این آسیبپذیری میتواند به memory corruption منجر شود که در برخی شرایط قابل ارتقا به اجرای کد در سطح sandbox content process است.
کد اثبات مفهومی (PoC) منتشر شده و در محیط ASan (AddressSanitizer) وقوع کرش های استفاده پس از آزادسازی را بهصورت قابل تکرار نشان میدهد؛ گزارش ASan نشان میدهد که فراخوانی Reset باعث دسترسی به آدرس حافظه آزادشده و عملکرد غیرمجاز میشود.
پیامدهای این ضعف شامل نقض محرمانگی ، یکپارچگی و دسترسپذیری سیستم کاربر است. این آسیبپذیری با انتشار نسخههای امن مرورگر بهطور کامل پچ شده است.
CVSS
| Score | Severity | Version | Vector String |
| 9.8 | CRITICAL | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected before 135 | Firefox |
| affected before 115.20 | Firefox ESR |
| affected before 128.7 | Firefox ESR |
| affected before 128.7 | Thunderbird |
| affected before 135 | Thunderbird |
لیست محصولات بروز شده
| Versions | Product |
| 135 | Firefox |
| 115.20 | Firefox ESR |
| 128.7 | Firefox ESR |
| 128.7 | Thunderbird |
| 135 | Thunderbird |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Firefox، Thunderbird را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 712,000 | site:.ir “Firefox” | Firefox |
| 265,000 | site:.ir “Thunderbird” | Thunderbird |
نتیجه گیری
این آسیبپذیری بحرانی از نوع استفاده پس از آزادسازی حافظه در پردازش XSLT است که با ایجاد یک کرش بالقوه قابل بهرهبرداری میتواند منجر به اجرای کد دلخواه از راه دور شود. با توجه به انتشار پچهای امنیتی توسط موزیلا، انجام اقدامات زیر برای کاهش ریسک بهرهبرداری ضروری است:
- بهروزرسانی فوری: تمام کاربران Firefox باید به نسخه 135 یا جدیدتر بهروزرسانی کنند. برای کاربران Firefox ESR، نسخههای 115.20 یا جدیدتر و 128.7 یا جدیدتر امن هستند. کاربران Thunderbird نیز باید به نسخههای 128.7 یا جدیدتر یا 135 یا جدیدتر (بسته به شاخه مورد استفاده) بهروزرسانی کنند..این اقدام، مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- فعالسازی بهروزرسانی خودکار: از فعال بودن قابلیت به روزرسانی خودکار (Auto-Update) در تنظیمات مرورگر اطمینان حاصل کنید تا پچهای امنیتی جدید بهصورت مستمر دریافت شوند.
- محدودسازی پردازش XSLT: در محیطهای سازمانی، با استفاده از سیاستهای گروهی (Group Policy) یا فایل های پیکربندی json، ویژگی dom.xsl_enabled را غیرفعال کنید تا پردازش XSLT بهطور کامل مسدود شود.
- استفاده از سندباکس سختگیرانه: اطمینان حاصل کنید که Site Isolation و Fission فعال باشد تا در صورت بهرهبرداری، آسیب به فرآیندهای دیگر محدود شود.
- مسدودسازی محتوای مخرب: از فایروال اپلیکیشن وب (WAF) یا افزونههایی مانند NoScript برای مسدود کردن اجرای اسکریپت و بارگذاری محتوای XML/XSLT از منابع ناشناس استفاده کنید.
- نظارت و ثبت لاگ: لاگهای کرش مرورگر را بهصورت دورهای بررسی کنید و تا کرش های مرتبط با XSLT شناسایی شوند.
- آموزش کاربران: کاربران را نسبت به ریسک باز کردن ایمیلها یا صفحات حاوی محتوای XSLT از منابع نامعتبر آگاه کنید.
اجرای این اقدامات به ویژه بهروزرسانی به نسخه های امن، ریسک بهرهبرداری از این آسیبپذیری را به حداقل رسانده و امنیت Firefox و Thunderbird را تضمین می کند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم با هدایت کاربر به یک صفحه وب یا محتوای ایمیل حاوی XSLT/DOM مخرب، بدون نیاز به تعامل اضافی و بدون احراز هویت، کد XML/XSLT طراحیشده را به پردازشگر XSLT تزریق میکند. این ورودی بهعنوان نقطه ورود اولیه برای فعالسازی چرخه معیوب سند و آغاز UAF عمل میکند.
Execution (TA0002)
پردازشگر XSLT هنگام ImportStylesheet، adoptNode و Reset اقدام به اجرای مسیرهای داخلی میکند که باعث دسترسی به اشارهگر آزادشده میشود. مهاجم از این خط اجرای آسیبپذیر برای اجرای کد در پردازش sandbox شده رندر استفاده میکند. اجرای موفق معمولاً از طریق ساخت یک زنجیره DOM/XSLT خودکارسازی شده انجام میشود.
Defense Evasion (TA0005)
کد مخرب در قالب یک سند XSLT معتبر و سازگار با استاندارد ارائه میشود و معمولاً توسط آنتیویروس یا فیلترهای محتوا شناسایی نمیشود. این حمله از چرخه عادی DOM و GC سوءاستفاده کرده و هیچ رفتار آشکاری در سطح فایل یا شبکه ایجاد نمیکند، بنابراین امکان فرار از مکانیزمهای امنیتی مبتنی بر امضا بالاست.
Collection (TA0009)
در صورت موفقیت RCE در پردازش رندر، مهاجم میتواند دادههایی مثل کوکیهای غیر-HTTPOnly، دادههای فرم یا محتوای DOM را جمعآوری کند. این سطح جمعآوری محدود به Context سند sandbox شده است، اما همچنان میتواند برای سرقت اطلاعات کاربر کافی باشد.
Exfiltration (TA0010)
مهاجم میتواند دادههای سرقتشده را از طریق درخواستهای outbound مثلاً fetch یا XHR به سرور خود منتقل کند. با توجه به اینکه کد مخرب در همان Origin بارگذاری شده، خروج دادهها از دید مرورگر ترافیک عادی تلقی میشود.
Impact (TA0040)
پیامد حمله شامل اجرای کد دلخواه در پردازش رندر، سرقت اطلاعات جلسه، نقض محرمانگی DOM، تغییر یکپارچگی دادههای صفحه و ایجاد کرشهای قابل تکرار است. در بدترین حالت، مهاجم میتواند یک مرحله از زنجیره کامل Browser Exploitation را بسازد که به نفوذ پایدارتر منجر شود.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-1009
- https://www.cvedetails.com/cve/CVE-2025-1009/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-1009
- https://vuldb.com/?id.294635
- https://vuldb.com/?id.294634
- https://www.mozilla.org/security/advisories/mfsa2025-07/
- https://www.mozilla.org/security/advisories/mfsa2025-08/
- https://www.mozilla.org/security/advisories/mfsa2025-09/
- https://www.mozilla.org/security/advisories/mfsa2025-10/
- https://www.mozilla.org/security/advisories/mfsa2025-11/
- https://bugzilla.mozilla.org/show_bug.cgi?id=1936613
- https://lists.debian.org/debian-lts-announce/2025/02/msg00006.html
- https://lists.debian.org/debian-lts-announce/2025/02/msg00005.html
- https://nvd.nist.gov/vuln/detail/CVE-2025-1009
- https://cwe.mitre.org/data/definitions/416.html