چکیده

آسیب‌پذیری خواندن خارج از محدوده (Out‑of‑bounds Read) در منطق پردازش مسیر کوکی‌ها در curl و libcurl زمانی رخ می‌دهد که پس از تنظیم یک کوکی امن روی HTTPS، همان کوکی از طریق HTTP دوباره ارسال شود. این خطا باعث پردازش نادرست مسیر کوکی و دسترسی خارج از محدوده حافظه شده و می‌تواند منجر به کرش برنامه گردد.

توضیحات

آسیب‌پذیری CVE‑2025‑9086 ناشی از یک خطا در منطق مقایسه مسیر کوکی‌ها در curl و libcurl است که در یک توالی خاص از عملیات، باعث خواندن خارج از محدوده حافظه (Out‑of‑bounds Read) می‌شود. این وضعیت زمانی رخ می‌دهد که ابتدا یک کوکی با پرچم Secure برای یک مقصد HTTPS تنظیم شده باشد (پرچمی که تعیین می‌کند کوکی صرفاً روی کانال امن قابل استفاده است) و سپس libcurl به همان میزبان اما از طریق HTTP هدایت شود. در این حالت سرور HTTP یک کوکی جدید با همان نام و با مسیر “/” ارسال می‌کند. طبق استاندارد امنیت کوکی‌ها، این کوکی ناامن باید کاملاً نادیده گرفته شود و هرگز نباید بتواند یک کوکی Secure را بازنویسی کند.

با این حال، به‌دلیل خطا در تابع sanitize_cookie_path مسیر “/” به یک رشته خالی تبدیل می‌شود. سپس، هنگام مقایسه مسیر جدید با مسیر قبلی، تابعی که مسئول تشخیص قابلیت جایگزینی کوکی است در بخش replace_existing با فراخوانی تابع strchr روی مقدار clist->spath + 1 از ابتدای حافظه تخصیص‌یافته عبور می‌کند و وارد بخشی خارج از محدوده بافر می‌شود. نتیجه این عملکرد، خواندن خارج از محدوده است که بسته به محتوای تصادفی حافظه یا باعث کرش برنامه (DoS) می‌شود یا در برخی شرایط خاص، libcurl را به اشتباه متقاعد می‌کند که کوکی HTTP غیرامن می‌تواند کوکی Secure موجود را بازنویسی کند؛ عملکردی که برخلاف استانداردهای امنیتی و کاملاً وابسته به وضعیت حافظه پس از بایت تخصیص‌یافته است.

بهره‌برداری عملی از این ضعف نیازمند این است که مهاجم یا کنترل نسخه HTTP همان دامنه را در اختیار داشته باشد یا بتواند از طریق حمله MITM (قرار گرفتن در مسیر ارتباط و دست‌کاری ترافیک) پاسخ HTTP را تغییر دهد. با این حال، چون مهاجم هیچ کنترلی روی محتوای حافظه خوانده‌شده ندارد، حمله ناپایدار و غیرقابل‌اعتماد باقی می‌ماند و امکان سوءاستفاده دقیق از آن محدود است. اثر امنیتی این ضعف محدود به libcurl است؛ هرچند ابزار خط فرمان curl نیز می‌تواند همان عملکرد بازنویسی کوکی‌ها را انجام دهد، اما این موضوع در سطح ابزار منجر به ضعف امنیتی نمی‌شود و اهمیت آن تنها در سطح کتابخانه است. این آسیب‌پذیری در نسخه 8.16.0 با بازنویسی کامل منطق مدیریت مسیر کوکی‌ها پچ شده است.

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 8.15.0 through 8.15.0

affected from 8.14.1 through 8.14.1

affected from 8.14.0 through 8.14.0

affected from 8.13.0 through 8.13.0

affected from 8.12.1 through 8.12.1

affected from 8.12.0 through 8.12.0

affected from 8.11.1 through 8.11.1

affected from 8.11.0 through 8.11.0

affected from 8.10.1 through 8.10.1

affected from 8.10.0 through 8.10.0

affected from 8.9.1 through 8.9.1

affected from 8.9.0 through 8.9.0

affected from 8.8.0 through 8.8.0

affected from 8.7.1 through 8.7.1

affected from 8.7.0 through 8.7.0

affected from 8.6.0 through 8.6.0

affected from 8.5.0 through 8.5.0

affected from 8.4.0 through 8.4.0

affected from 8.3.0 through 8.3.0

affected from 8.2.1 through 8.2.1

affected from 8.2.0 through 8.2.0

affected from 8.1.2 through 8.1.2

affected from 8.1.1 through 8.1.1

affected from 8.1.0 through 8.1.0

affected from 8.0.1 through 8.0.1

affected from 8.0.0 through 8.0.0

affected from 7.88.1 through 7.88.1

affected from 7.88.0 through 7.88.0

affected from 7.87.0 through 7.87.0

affected from 7.86.0 through 7.86.0

affected from 7.85.0 through 7.85.0

affected from 7.84.0 through 7.84.0

affected from 7.83.1 through 7.83.1

affected from 7.83.0 through 7.83.0

affected from 7.82.0 through 7.82.0

affected from 7.81.0 through 7.81.0

affected from 7.80.0 through 7.80.0

affected from 7.79.1 through 7.79.1

affected from 7.79.0 through 7.79.0

affected from 7.78.0 through 7.78.0

affected from 7.77.0 through 7.77.0

affected from 7.76.1 through 7.76.1

affected from 7.76.0 through 7.76.0

affected from 7.75.0 through 7.75.0

affected from 7.74.0 through 7.74.0

affected from 7.73.0 through 7.73.0

affected from 7.72.0 through 7.72.0

affected from 7.71.1 through 7.71.1

affected from 7.71.0 through 7.71.0

affected from 7.70.0 through 7.70.0

affected from 7.69.1 through 7.69.1

affected from 7.69.0 through 7.69.0

affected from 7.68.0 through 7.68.0

affected from 7.67.0 through 7.67.0

affected from 7.66.0 through 7.66.0

affected from 7.65.3 through 7.65.3

affected from 7.65.2 through 7.65.2

affected from 7.65.1 through 7.65.1

affected from 7.65.0 through 7.65.0

affected from 7.64.1 through 7.64.1

affected from 7.64.0 through 7.64.0

affected from 7.63.0 through 7.63.0

affected from 7.62.0 through 7.62.0

affected from 7.61.1 through 7.61.1

affected from 7.61.0 through 7.61.0

affected from 7.60.0 through 7.60.0

affected from 7.59.0 through 7.59.0

affected from 7.58.0 through 7.58.0

affected from 7.57.0 through 7.57.0

affected from 7.56.1 through 7.56.1

affected from 7.56.0 through 7.56.0

affected from 7.55.1 through 7.55.1

affected from 7.55.0 through 7.55.0

affected from 7.54.1 through 7.54.1

affected from 7.54.0 through 7.54.0

affected from 7.53.1 through 7.53.1

affected from 7.53.0 through 7.53.0

affected from 7.52.1 through 7.52.1

affected from 7.52.0 through 7.52.0

affected from 7.51.0 through 7.51.0

affected from 7.50.3 through 7.50.3

affected from 7.50.2 through 7.50.2

affected from 7.50.1 through 7.50.1

affected from 7.50.0 through 7.50.0

affected from 7.49.1 through 7.49.1

affected from 7.49.0 through 7.49.0

affected from 7.48.0 through 7.48.0

affected from 7.47.1 through 7.47.1

affected from 7.47.0 through 7.47.0

affected from 7.46.0 through 7.46.0

affected from 7.45.0 through 7.45.0

affected from 7.44.0 through 7.44.0

affected from 7.43.0 through 7.43.0

affected from 7.42.1 through 7.42.1

affected from 7.42.0 through 7.42.0

affected from 7.41.0 through 7.41.0

affected from 7.40.0 through 7.40.0

affected from 7.39.0 through 7.39.0

affected from 7.38.0 through 7.38.0

affected from 7.37.1 through 7.37.1

affected from 7.37.0 through 7.37.0

affected from 7.36.0 through 7.36.0

affected from 7.35.0 through 7.35.0

affected from 7.34.0 through 7.34.0

affected from 7.33.0 through 7.33.0

affected from 7.32.0 through 7.32.0

affected from 7.31.0 through 7.31.0

curl

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

Versions Product
8.16.0 curl

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
8,940 site:.ir ” libcurl” libcurl

نتیجه گیری

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

  • به‌روزرسانی فوری: تمام نمونه‌های curl و libcurl را به نسخه 8.16.0 یا بالاتر به روزرسانی کنید. این اقدام، مؤثرترین روش برای رفع کامل آسیب‌پذیری است و باید در اولویت قرار گیرد، زیرا ضعف در مدیریت کوکی‌های امن را اصلاح می‌کند. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • اجتناب از downgrade پروتکل: از گزینه –ssl-reqd در curl یا CURLOP_SSLVERSION در libcurl استفاده کنید تا در صورت ریدایرکت به HTTP، ارتباط قطع شود و کوکی‌های امن در معرض ریسک قرار نگیرند.
  • محدودسازی و مدیریت ایمن کوکی‌ها: در برنامه‌های مبتنی بر libcurl، از CURLOPT_COOKIEJAR و CURLOPT_COOKIEFILE به‌صورت امن استفاده کنید و از تنظیم کوکی‌های Secure و HttpOnly بهره ببرید؛ همچنین، سیاست SameSite=Lax یا Strict را در سرور اعمال نمایید.
  • نظارت و تشخیص: لاگ‌های برنامه را برای کرش‌های غیرمنتظره libcurl بررسی کنید؛ از ابزارهایی مانند Valgrind یا AddressSanitizer در مرحله توسعه برای شناسایی خواندن خارج از محدوده استفاده نمایید.
  • استفاده از HSTS: در وب سرورها ، هدر Strict-Transport-Security (HSTS) را فعال کنید تا مرورگرها و کلاینت‌ها مجبور به استفاده از HTTPS شوند و ریدایرکت به HTTP غیرممکن گردد.
  • تست امنیتی دوره‌ای: در پروژه‌های بزرگ، وابستگی‌های libcurl را با ابزارهایی مانند OWASP Dependency-Check یا js اسکن کنید تا نسخه‌های آسیب‌پذیر شناسایی شوند.

اجرای این اقدامات به ویژه به‌روزرسانی به نسخه امن، ریسک ناشی از این آسیب‌پذیری را به‌طور چشمگیری کاهش داده و امنیت مدیریت کوکی‌ها در میلیون‌ها برنامه مبتنی بر curl را تضمین می‌نماید.

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

Initial Access (TA0001)

در این بردار، ورودی مهاجم از طریق کنترل جریان ترافیک redirect chain از HTTPS به HTTP یا دست‌کاری پاسخ HTTP در سناریوی MITM فراهم می‌شود. مهاجم با تزریق یک کوکی جدید روی کانال غیرامن، کد مسیر را وارد وضعیت خطا کرده و زمینه برای تحریک رفتار غیرمنتظره در libcurl ایجاد می‌کند.

Discovery (TA0007)

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

Defense Evasion (TA0005)

در یک سناریوی MITM، مهاجم می‌تواند از یک هدایت HTTP/HTTPS طبیعی استفاده کند تا بدون نیاز به تغییرات واضح در payload، منطق libcurl را با یک کوکی non-secure هدف قرار دهد و باعث کرش شود، که نوعی اختفای تاکتیکی محسوب می‌شود.

Impact (TA0040)

تأثیر مستقیم این ضعف Denial of Service است؛ libcurl یا اپلیکیشن وابسته به ‌واسطه خواندن خارج از محدوده کرش می‌کند. در برخی حالت‌ها ممکن است مسیر داخلی منجر به پذیرش اشتباه یک کوکی ناامن شود، اما این رفتار غیرقطعی است و مسیر اثرگذاری قابل‌استفاده ایجاد نمی‌کند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-9086
  2. https://www.cvedetails.com/cve/CVE-2025-9086/
  3. https://curl.se/docs/CVE-2025-9086.html
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-9086
  5. https://vuldb.com/?id.323608
  6. https://curl.se/docs/CVE-2025-9086.json
  7. https://hackerone.com/reports/3294999
  8. http://www.openwall.com/lists/oss-security/2025/09/10/1
  9. https://nvd.nist.gov/vuln/detail/CVE-2025-9086

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *