- شناسه CVE-2025-9230 :CVE
- CWE-125, CWE-787 :CWE
- yes :Advisory
- منتشر شده: سپتامبر 30, 2025
- به روز شده: سپتامبر 30, 2025
- امتیاز: 7.5
- نوع حمله: Out-of-bounds read & write
- اثر گذاری: Memory Corruption
- حوزه: پروتکلهای رمزگذاری و ارتباطی
- برند: OpenSSL
- محصول: OpenSSL
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
یک آسیبپذیری در فرآیند بازگشایی کلید (KEK Unwrap) مطابق استاندارد RFC 3211 در OpenSSL شناسایی شده است که هنگام رمزگشایی پیامهای CMS مبتنی بر رمزگذاری با رمزعبور (PWRI)، باعث خواندن و نوشتن خارج از محدوده حافظه میشود. این ضعف میتواند منجر به خرابی حافظه یا انکار سرویس (DoS) شده و در شرایط خاص حتی امکان اجرای کد دلخواه مهاجم را فراهم کند.
توضیحات
آسیبپذیری CVE-2025-9230 ترکیبی از دو ضعف خواندن خارج از محدوده (Out-of-Bounds Read) مطابق با CWE-125 و نوشتن خارج از محدوده (Out-of-Bounds Write) مطابق با CWE-787 در فرآیند بازگشایی کلید (KEK Unwrap) در پیادهسازی Password Recipient Info (PWRI-KEK) طبق استاندارد RFC 3211 در ماژول CMS (Cryptographic Message Syntax) کتابخانه OpenSSL است.
CMS یک قالب استاندارد برای بستهبندی، رمزگذاری و امضای پیامهای رمزنگاریشده است. RFC 3211 نیز استانداردی برای رمزگشایی پیامهای رمزنگاریشده است که در آن اطلاعات کلید رمزگذاری (KEK) برای رمزگشایی پیامها به کار میروند. در این استاندارد، PWRI-KEK به شیوهای اشاره دارد که در آن، اطلاعات مربوط به کلید رمزگذاری در پیامهای رمزنگاریشده قرار میگیرد. پیامهایی که به این روش رمزگذاری شدهاند، معمولاً برای انتقال ایمن اطلاعات حساس مانند گواهیهای دیجیتال استفاده میشوند.
این ضعف بهدلیل بررسی نادرست اندازه کلید پس از مرحله unwrap (بازگشایی کلید) ایجاد شده است. این اشتباه باعث میشود که حداکثر 8 بایت خارج از بافر خوانده شده و تا 4 بایت خارج از بافر نوشته شود. این آسیبپذیری تنها زمانی قابل بهره برداری است که برنامه سعی کند یک پیام CMS رمزگذاری شده با روش رمزگذاری مبتنی بر رمز عبور PBKDF2 (Password-Based Key Derivation Function 2) به همراه KEK (Key Encryption Key) و رمزنگاری متقارن (Symmetric Encryption) را رمزگشایی کند. لازم به ذکر است که در این سناریو، مهاجم باید به محتوای پیام CMS دسترسی داشته باشد (برای مثال، از طریق ایمیل، آپلود فایل یا API).
PBKDF2 یک تابع مشتقسازی کلید است که برای تبدیل رمز عبور به یک کلید رمزنگاری قوی استفاده میشود. در این مورد، PBKDF2 همراه با KEK برای محافظت از کلیدهای استفادهشده در پیامهای CMS بهکار میرود. ضعف موجود میتواند باعث Read-Out-Of-Bounds شود؛ حالتی که معمولاً منجر به کرش آنی فرآیند و ایجاد DoS میشود. در سناریوهای شدیدتر، Write-Out-Of-Bounds محتمل است که میتواند تخریب حافظه و در شرایط بسیار محدود و غیرعادی امکان اجرای کد دلخواه را فراهم کند، هرچند احتمال بهرهبرداری عملی آن بسیار پایین ارزیابی میشود.
بهرهبرداری از این ضعف بهسادگی قابل خودکارسازی نیست و نیازمند ایجاد پیام CMS خاص است. همچنین استفاده از PWRI در سناریوهای واقعی بسیار نادر است، زیرا اغلب سیستمها از کلیدهای عمومی یا گواهیها بهجای روش مبتنی بر رمز عبور استفاده میکنند. ماژولهای FIPS تحتتأثیر نیستند، زیرا پیادهسازی CMS خارج از محدوده ماژول FIPS قرار دارد. این آسیبپذیری در تمام شاخههای فعال و قدیمی OpenSSL (از نسخه 1.0.2 تا 3.5) وجود دارد و با اعمال بررسی صحیح اندازه کلید در تابع kek_unwrap_key پچ شده است.
CVSS
| Score | Severity | Version | Vector String |
| 7.5 | HIGH | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 3.5.0 before 3.5.4
affected from 3.4.0 before 3.4.3 affected from 3.3.0 before 3.3.5 affected from 3.2.0 before 3.2.6 affected from 3.0.0 before 3.0.18 affected from 1.1.1 before 1.1.1zd affected from 1.0.2 before 1.0.2zm |
OpenSSL |
لیست محصولات بروز شده
| Versions | Product |
| Upgrading to version 1.0.2zm, 1.1.1zd, 3.0.18, 3.2.6, 3.3.5, 3.4.3 or 3.5.4 eliminates this vulnerability. | OpenSSL |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که OpenSSL را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 77,100 | site:.ir “OpenSSL” | OpenSSL |
نتیجه گیری
این آسیبپذیری در فرآیند PWRI-KEK در ماژول CMS کتابخانه OpenSSL وجود دارد. از نظر نمره CVSS، شدت آن بالا (High) است، اما با توجه به نادر بودن استفاده از PWRI-KEK و پیچیدگی فنی بهرهبرداری، ریسک واقعی در عمل نسبتاً پایین است. با این حال، برای حفظ امنیت کامل، توصیه میشود اقدامات پیشگیرانه زیر را انجام دهید:
- بهروزرسانی فوری: در اسرع وقت به نسخه های 0.18، 3.2.6، 3.3.5، 3.4.3 و 3.5.4به روزرسانی کنید. برای نسخههای 1.1.1 و 1.0.2، تنها در صورت داشتن پشتیبانی Premium به نسخههای 1.0.2zm یا 1.1.1zd ارتقا دهید. این اقدام، مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- اجتناب از استفاده از PWRI در CMS: در برنامهها و سرویسهای خود از روشهای رمزگذاری مبتنی بر گواهی عمومی (Public Key) یا کلیدهای از پیش بهاشتراکگذاشتهشده استفاده کنید و PWRI-KEK را غیرفعال یا حذف نمایید.
- اعتبارسنجی ورودیهای CMS: پیامهای CMS که از منابع خارجی دریافت میکنید را پیش از ارسال به OpenSSL با استفاده از ابزارهای شخص ثالث (مانند cms-verifier) یا با محدودیتهای اندازه، بررسی کنید.
- محدودسازی دسترسی به APIهای رمزگشایی: در برنامهها و سرویسهای وب که اجازه آپلود فایلهای .p7m یا .p7s را میدهند، دسترسی به این APIها را با استفاده از فایروال اپلیکیشن وب (WAF) یا لیست سفید IP محدود کنید.
- مانیتورینگ کرشها: لاگهای برنامه را برای شناسایی کرشهای مکرر در توابع CMS بررسی کنید؛ بروز کرشهای ناگهانی میتواند نشانهای از تلاش برای بهرهبرداری از این آسیبپذیری باشد.
اجرای این اقدامات، به ویژه بهروزرسانیها، ریسک ناشی از این آسیبپذیری را به حداقل میرساند و امنیت OpenSSL را بهطور مؤثری تضمین میکند.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
در سناریوهای واقعی، مهاجم از ورودیهای CMS آلوده مثل فایلهای .p7m / .p7s که از طریق وبسرویس یا API قابل بارگذاری هستند برای تزریق ساختارهای خراب استفاده میکند. این ورودیها بدون احراز هویت قوی یا فیلتر اندازه، نقطه ورود مستقیم برای فعالسازی رفتار خارج از-محدوده در تابعهای PWRI/KEK محسوب میشوند و عملاً یک بردار Initial Access مبتنی بر malformed CMS payload ایجاد میکنند.
Execution (TA0002)
نوشتن خارج از محدوده در فرآیند رمزگشایی CMS میتواند در برخی شرایط خاص به اجرای کنترلنشدهی کد منجر شود؛ هرچند احتمال آن پایین است اما از نظر تئوریک یک مسیر Execution مبتنی بر memory corruption ایجاد میکند.
Credential Access (TA0006)
به دلیل اینکه تابع PWRI برای محافظت از KEK و کلیدهای مشتقشده استفاده میشود، حمله موفق میتواند منجر به افشای کلیدهای رمزنگاری مرتبط شود. این نشت بالقوه امکان دسترسی به اطلاعات حساس رمزنگاریشده را برای مهاجم تسهیل میکند.
Discovery (TA0007)
مهاجم میتواند با ارسال مجموعهای از پیامهای CMS با اندازههای متفاوت، رفتار پردازنده PWRI را پروفایل کند تا بفهمد چه ساختارهایی باعث خطای حافظه، crash یا پاسخدهی غیرعادی میشوند؛ این به او کمک میکند محدوده دقیق exploit surface را شناسایی کند.
Privilege Escalation (TA0004)
اگر OpenSSL در یک سرویس دارای سطح دسترسی بالا اجرا شود مثلاً سرویس system-level، memory corruption ناشی از نوشتن خارج از محدوده میتواند به مهاجم امکان اجرای عملیات با سطح دسترسی همان سرویس را بدهد.
Collection (TA0009)
در سناریوی افشای KEK یا کلیدهای مشتقشده، مهاجم قادر است دادههای رمزگذاریشده CMS را جمعآوری کند و سپس خارج از سیستم رمزگشایی کند. این مسیر حمله با توجه به نقش PWRI در مدیریت کلیدها منطبق است.
Exfiltration (TA0010)
پس از دسترسی به کلیدها یا ساختارهای رمزگشاییشده، مهاجم دادههای حساس را از طریق کانالهای معمول وباپلیکیشن یا API خروجی میبرد. اگر سرویس رمزگشایی در اینترنت در معرض باشد، این مسیر بسیار محتمل است.
Defense Evasion (TA0005)
مهاجم میتواند پیامهای CMS بسیار نزدیک به محدوده صحیح بسازد تا خطاها را تدریجی و غیرقابل تمایز جلوه دهد؛ این روش باعث میشود crashهای پیدرپی طبیعی جلوه کنند و فرآیندهای مانیتورینگ را دور بزند. محدودسازی سایز و ساختار ورودی CMS این ریسک را کاهش میدهد.
Lateral Movement (TA0008)
در صورت دستیابی به اجرای کد یا دسترسی به credential های رمزنگاریشده، مهاجم میتواند به سایر سرویسهایی که به همین PKI/ کلیدها متکیاند حرکت کند. این شامل سرویسهای امضای دیجیتال، تبادل کلید یا Gateway های مرتبط است.
Impact (TA0040)
اثر اصلی این ضعف شامل DoS به دلیل کرش خواندن خارج از محدوده و افشای محتمل کلیدها است؛ در سناریوهای محدود، اجرای کد نیز ممکن است. این ترکیب میتواند قابلیت اعتماد سرویسهای رمزنگاری را مختل کند و امنیت زنجیره CMS را زیر سؤال ببرد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-9230
- https://www.cvedetails.com/cve/CVE-2025-9230/
- https://openssl-library.org/news/secadv/20250930.txt
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-9230
- https://vuldb.com/?id.326397
- https://github.com/openssl/openssl/commit/bae259a211ada6315dc50900686daaaaaa55f482
- https://github.com/openssl/openssl/commit/9e91358f365dee6c446dcdcdb01c04d2743fd280
- https://github.com/openssl/openssl/commit/5965ea5dd6960f36d8b7f74f8eac67a8eb8f2b45
- https://github.com/openssl/openssl/commit/b5282d677551afda7d20e9c00e09561b547b2dfd
- https://github.com/openssl/openssl/commit/a79c4ce559c6a3a8fd4109e9f33c1185d5bf2def
- https://github.openssl.org/openssl/extended-releases/commit/dfbaf161d8dafc1132dd88cd48ad990ed9b4c8ba
- https://github.openssl.org/openssl/extended-releases/commit/c2b96348bfa662f25f4fabf81958ae822063dae3
- https://lists.debian.org/debian-lts-announce/2025/10/msg00001.html
- http://www.openwall.com/lists/oss-security/2025/09/30/5
- https://nvd.nist.gov/vuln/detail/CVE-2025-9230
- https://cwe.mitre.org/data/definitions/125.html
- https://cwe.mitre.org/data/definitions/787.html