خانه » CVE-2025-59050

CVE-2025-59050

Greenshot — Insecure .NET Deserialization Via WM_COPYDATA Enables Local Code Execution

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

چکیده

آسیب‌پذیری در نرم‌افزار متن‌باز Greenshot نسخه‌های 1.3.300 و پیش از آن، که یک ابزار اسکرین‌شات برای ویندوز است، ناشی از سریال‌زدایی (Deserialization) ناامن داده‌های کنترل‌شده توسط مهاجم در پیام WM_COPYDATA می باشد. این آسیب پذیری به یک فرآیند لوکال با همان سطح یکپارچگی اجازه می‌دهد کد دلخواه را مستقیماً در فرآیند مربوط به Greenshot اجرا کند.

توضیحات

آسیب‌پذیری CVE-2025-59050 در نرم‌افزار متن‌باز Greenshot، نسخه‌های 1.3.300 و پیش‌تر، ناشی از سریال زدایی(Deserialization) ناامن داده‌های کنترل شده توسط مهاجم در پیام‌های WM_COPYDATA (پیامی در ویندوز برای ارسال داده بین پنجره ها) در فریم ورک .NET است و مطابق با CWE-502 طبقه‌بندی می‌شود.

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

در این نسخه، منطق آسیب‌پذیر در یک WndProc handler در WinForms قرار دارد که پیام WM_COPYDATA (پیام 74) را مدیریت می‌کند. داده‌های دریافتی ابتدا در یک MemoryStream قرار می‌گیرند و سپس بدون هیچ گونه اعتبارسنجی یا احراز هویت با استفاده از BinaryFormatter.Deserialize (کلاسی از .NET برای سریال سازی و سریال زدایی) سریال‌زدایی می‌شوند. تنها پس از این مرحله، بررسی مجوز کانال (Channel Authorization) انجام می‌شود؛ بنابراین هر زنجیره گجت (Gadget Chain) جاسازی‌شده در داده سریال‌سازی شده، بدون توجه به وضعیت مجوز، اجرا می‌شود. این ضعف به مهاجم لوکال که در همان سطح یکپارچگی سیستم اجرا می‌شود، اجازه می‌دهد تا کد دلخواه را در فرآیند Greenshot اجرا کند. اجرای کد در فرآیند معتبر و امضاشده Greenshot.exe امکان دورزدن سیاست‌های کنترل برنامه مانند AppLocker یا کنترل برنامه های ویندوز دیفندر (WDAC) را فراهم می‌کند، زیرا حمله در حافظه و درون فرآیند انجام شده و نیازی به ایجاد فرآیند جدید ندارد. این آسیب‌پذیری می‌تواند برای اجرای مخفیانه پیلودها، حفظ دسترسی یا به‌عنوان نقطه شروع برای حملات بین فرآیندی یا درون فرآیندی در محیط‌های سازمانی استفاده شود.

اجرای این حمله نیاز به تعامل کاربر یا مجوزهای ویژه ندارد، اما نیازمند دسترسی به‌صورت لوکال است. پیامدهای آن شامل نقض شدید محرمانگی با دسترسی به داده‌های حساس، یکپارچگی با تغییر عملکرد برنامه و در دسترس‌پذیری با ایجاد اختلال در عملکرد نرم افزار است. کد اثبات مفهومی (PoC) منتشر شده شامل یک برنامه فرستنده (sender) است که پنجره اصلی Greenshot را شناسایی کرده و پیلود سریال سازی ‌شده را از طریق SendMessage با WM_COPYDATA ارسال می‌کند. ویدئوی PoC نشان‌دهنده اجرای cmd.exe در فرآیند Greenshot.exe است.

این آسیب پذیری در نسخه 1.3.301 با افزودن بررسی امنیتی پیش از سریال‌سازی و استفاده از SafeSerializationBinder برای BinaryFormatter پچ شده است که تضمین می کند داده های دریافتی پیش از اجرا اعتبارسنجی شده و از اجرای گجت های مخرب جلوگیری گردد.

CVSS

Score Severity Version Vector String
8.4 HIGH 3.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

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

Versions Platforms Product
affected at < 1.3.301 Windows greenshot

لیست محصولات بروز شده

Versions Platforms Product
1.3.301 Windows greenshot

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

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که greenshot را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Product
458 greenshot

 نتیجه گیری

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

  • به‌روزرسانی فوری: Greenshot را به نسخه 1.3.301 یا بالاتر به‌روزرسانی کنید تا اصلاحات امنیتی شامل بررسی پیش از سریال‌زدایی و استفاده از SafeSerializationBinder اعمال شود.
  • مدیریت پیام‌های WM_COPYDATA (WM_COPYDATA Message Handling): از دریافت پیام‌های WM_COPYDATA از فرآیند‌های غیرقابل اعتماد جلوگیری کنید و ورودی‌ها را قبل از سریال زدایی اعتبارسنجی نمایید.
  • کنترل سطح یکپارچگی: Greenshot را در سطح یکپارچگی پایین‌تر (non-elevated) اجرا کنید تا از امکان ارسال پیام از فرآیندهای هم‌سطح و بهره‌برداری از طریق Windows Mandatory Integrity Control (MIC) جلوگیری شود.
  • نظارت بر فرآیندها: اجرای exe و فرآیندهای فرزند آن مانند cmd.exe را با ابزارهای EDR (Endpoint Detection and Response) نظارت کنید تا فعالیت‌های غیرعادی شناسایی شوند.
  • تقویت سیاست‌های کنترل برنامه (Application Control Policies): سیاست‌های AppLocker و WDAC (Windows Defender Application Control) را برای محدودسازی اجرای فرآیندهای غیرمجاز اعمال کنید، هرچند بهره‌برداری این آسیب‌پذیری مستقیماً در فرآیند امضاشده exe انجام می‌شود.
  • آموزش کاربران: کاربران و مدیران سیستم را نسبت به ریسک اجرای برنامه‌های معتبر با داده‌های غیرقابل اعتماد و اهمیت اعمال به‌روزرسانی‌های امنیتی آگاه کنید.

اجرای این اقدامات، ریسک اجرای کد مخرب و دور زدن سیاست‌های امنیتی را به حداقل رسانده و امنیت Greenshot را در سیستم‌های ویندوزی تقویت می‌کند. این آسیب‌پذیری بر اهمیت استفاده امن از BinaryFormatter و اعتبارسنجی داده‌های ورودی در برنامه‌های ویندوزی تأکید دارد.

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

Execution (TA0002)

تکنیک اصلی: Deserialization of untrusted data → BinaryFormatter.Deserialize اجرا می‌شود و منجر به اجرای کد در کانتکست Greenshot.exe می‌گردد.

Persistence (TA0003)

مهاجم می‌تواند payload در حافظه نگه‌دارد یا پس از اجرای اولیه، فایل‌های باینری/اسکریپت‌هایی را روی دیسک بنویسد یا scheduled task/register autorun ایجاد کند تا پس از ریبوت دسترسی حفظ شود.

Privilege Escalation (TA0004)

اگر Greenshot.exe با سطوح بالاتر اجرا شود (elevated) یا سیاست‌های کنترل برنامه باعث دسترسی بالاتر شوند، اجرای کد به‌صورت in-process منجر به ارتقای دسترسی کاربر مهاجم به حقوق مشابه فرآیند هدف می‌شود. همچنین امکان گرفتن tokenهای مرتبط و impersonation وجود دارد.

Defense Evasion (TA0005)

اجرای درون‌فرایند (in-memory) باعث دور زدن AV/EDR که فقط روی پراسس‌های جدید یا فایل‌های اجرایی تمرکز دارند می‌شود. استفاده از نام/فرایند مشروع (Greenshot.exe) و عدم نیاز به فایل on-disk، تشخیص را دشوارتر می‌کند.

Credential Access (TA0006)

مهاجم در صورت دسترسی به فرایند می‌تواند memory-scrape یا فایل‌های config محلی را هدف قرار دهد و credentialهای ذخیره‌شده (در فایل یا حافظه) را استخراج کند.

Discovery (TA0007)

مهاجم ممکن است ابتدا فهرست پنجره‌ها، سطوح integrity و مسیرهای نصب برنامه‌ها را اسکن کند تا هدفِ مناسب برای ارسال WM_COPYDATA را بیابد.

Lateral Movement (TA0008)

با استخراج credentialها یا دسترسی به ابزارهای مدیریتی، مهاجم قادر است حرکت جانبی انجام داده و سرویس‌ها یا ایستگاه‌های دیگر را هدف بگیرد.

Collection (TA0009)

جمع‌آوری داده‌های محلی، اسناد یا دیتابیس‌ها که توسط فرایند هدف قابل دسترسی هستند.

Exfiltration (TA0010)

استفاده از کانال‌های استاندارد (HTTPS, DNS) یا کانال‌های پنهان پس از ایجاد backdoor برای خارج‌سازی داده‌ها.

Command and Control (TA0011)

پس از استقرار payload مهاجم ممکن است یک کانال C2 برای کنترل تعاملی یا دستورات راه‌اندازی کند

Impact (TA0040)

اجرای کد دلخواه، دسترسی/سرقت داده، خراب‌کاری در اپلیکیشن، یا service disruption. در سازمان‌های بزرگ می‌تواند منجر به compromise گسترده‌تر شود.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-59050
  2. https://www.cvedetails.com/cve/CVE-2025-59050/
  3. https://github.com/greenshot/greenshot/security/advisories/GHSA-8f7f-x7ww-xx5w
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-59050
  5. https://vuldb.com/?id.324555
  6. https://github.com/greenshot/greenshot/commit/f5a29a2ed3b0eb49231c0f4618300f488cf1b04d
  7. https://nvd.nist.gov/vuln/detail/CVE-2025-59050
  8. https://cwe.mitre.org/data/definitions/502.html

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

پیام بگذارید

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