- شناسه CVE-2025-61920 :CVE
- CWE-20, CWE-400, CWE-770 :CWE
- yes :Advisory
- منتشر شده: اکتبر 10, 2025
- به روز شده: اکتبر 10, 2025
- امتیاز: 7.5
- نوع حمله: Unknown
- اثر گذاری: Denial of Service (Dos)
- حوزه: مدیریت هویت و دسترسی
- برند: authlib
- محصول: authlib
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
یک آسیبپذیری در کتابخانهی Authlib (ابزاری پایتونی برای پیادهسازی سرورهای احراز هویت OAuth و OpenID Connect) نسخههای پیش از 1.6.5 شناسایی شده است. این ضعف به دلیل عدم محدودیت در اندازهی بخشهای هدر و امضای توکنهای JWS/JWT ایجاد شده و به مهاجم از راه دور اجازه میدهد با ارسال توکنهایی با اندازهی بسیار بزرگ، منجر به مصرف بیش از حد منابع سیستم (CPU و حافظه) و در نهایت انکار سرویس (DoS) شود.
توضیحات
آسیبپذیری CVE-2025-61920 در کتابخانه Authlib نسخههای 1.6.4 و پایینتر، ناشی از عدم اعتبارسنجی ورودی ها مطابق با CWE-20، مصرف نامحدود منابع مطابق با CWE-400 و تخصیص منابع بدون محدودیت یا کنترل مطابق با CWE-770 است.
JOSE (JSON Object Signing and Encryption) ، مجموعهی استانداردی است که برای امضا و یا رمزگذاری دادهها بهصورت JSON استفاده میشود و شامل فرمتهایی مانند JWS (JSON Web Signature) و JWT (JSON Web Token) است؛ این آسیبپذیری دقیقاً در پیادهسازی JOSE/Authlib هنگام فرآیند تأیید JWS/JWT رخ میدهد. در این حمله، مهاجم از راه دور میتواند هدرها یا امضاهای base64url‑encoded با اندازههای بسیار بزرگ (مانند صدها مگابایت) ارسال کند. Authlib این ورودیها را قبل از رد کردن کاملاً رمزگشایی (decode) و پردازش میکند که باعث مصرف بیش از حد CPU و حافظه (تا چند گیگابایت RAM و چند ثانیه CPU) و نهایتاً انکار سرویس (DoS) میشود.
این آسیبپذیری از راه دور بدون نیاز به سطح دسترسی و بدون تعامل کاربرقابل بهرهبرداری است. پیامد آن نقض در دسترسپذیری با امکان انکار سرویس به دلیل مصرف منابع است. کد اثبات مفهومی (PoC) عمومی در قالب اسکریپت jws_segment_dos_demo.py منتشر شده که توکنهای مخرب با هدر یا امضای 500 مگابایتی تولید کرده و در آزمایش ها حدود 4 گیگابایت حافظه و 9 ثانیه CPU مصرف میکند.
این آسیب پذیری در نسخه 1.6.5 با اعمال محدودیتهای اندازه (256 کیلوبایت برای هدر و امضا در authlib/jose/util.extract_segment و _extract_signature) پچ شده است. راهکارهای موقت شامل محدود کردن اندازه ورودی قبل از ارسال توکن ها به Authlib و استفاده از throttling در سطح برنامه است.
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 at < 1.6.5 | authlib |
لیست محصولات بروز شده
Versions | Product |
1.6.5 | authlib |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Authlib را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
174 | site:.ir “Authlib” | Authlib |
نتیجه گیری
این آسیبپذیری با شدت بالا در Authlib، به دلیل پردازش بدون محدودیت هدرها و امضاهای JWS/JWT بدون محدودیت، امکان مصرف بیش از حد CPU و حافظه را فراهم میکند. با توجه به انتشار پچ رسمی و وجود PoC، اجرای فوری اقدامات زیر برای کاهش ریسک و افزایش امنیت ضروری است:
- بهروزرسانی فوری: Authlib را به نسخه 1.6.5 یا بالاتر به روزرسانی کنید.
- محدودسازی اندازه ورودی (Input Size Limitation): اندازه توکنهای JWS/JWT را در لایه پروکسی یا WAF (مثل Nginx یا Cloudflare) محدود کنید؛ به عنوان مثال، در Nginx میتوان client_max_body_size 10k را تنظیم کرد.
- مانیتورینگ و نرخ محدودسازی (Throttling & Monitoring): درخواستهای تأیید JWS/JWT را با rate limiting کنترل کرده، لاگهای سرور را برای توکنهای بزرگ (مثل هدرهای چند مگابایتی) نظارت نمایید و از ابزارهای IDS/IPS نیز بهره ببرید.
- ایزولهسازی محیط: برنامههای Authlib را در محیطهای محدود شده، مانند کانتینرهای Docker با محدودیت CPU/RAM اجرا کنید تا تأثیر DoS کاهش یابد.
- تست و اسکن امنیتی: وابستگیها (Dependencies) را با ابزارهایی مانند Snyk یا Dependabot اسکن کنید و PoC را در محیط تست اجرا کنید تا آسیبپذیری شناسایی شود.
- آموزش توسعهدهندگان: توسعهدهندگان را در مورد ریسک DoS از طریق ورودیهای بزرگ JWS/JWT و اهمیت اعمال محدودیتهای اندازه آموزش دهید.
اجرای این اقدامات، ریسک انکار سرویس و مصرف بیش از حد منابع را به حداقل رسانده و امنیت برنامه های مبتنی بر Authlib را بهطور قابلتوجهی بهبود میبخشد.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
در این آسیبپذیری برد حمله از طریق ورودیهای شبکهای یا HTTP است: مهاجم از راه دور توکنهای JWS/JWT حاوی segment های base64url با اندازه بسیار بزرگ ارسال میکند و Authlib پیش از اعمال هر گونه سقف یا اعتبارسنجی، این segment ها را decode/allocate میکند؛ بنابراین نیازی به احراز هویت یا تعامل کاربر نیست و هر endpointی که از Authlib برای اعتبارسنجی توکن استفاده میکند در معرض است.
Defense Evasion (TA0005)
مهاجم میتواند توکنهای بسیار بزرگی تولید کند که ظاهراً ساختار JWS/JWT را دارند تا از قواعد ساده اندازه یا محتوای هدر عبور کنند و بهصورت قانونینما از تشخیص مبتنی بر signature/regex فرار کنند؛ علاوه بر این، استفاده از payloadهای بزرگ میتواند باعث شود سیستمهای مانیتورینگ تنها الگوهای خطا را ببینند.
Impact (TA0040)
اثرات فنی و عملیاتی عمدتاً Denial of Service (A:H) است: مصرف چندگیگابایتی حافظه و قفل شدن CPU منجر به ناپاسخگویی سرویس، قطع دسترسی کاربران و بالقوه خسارت مالی/اعتباری میشود؛ برد اثر میتواند شامل cascade failure در میکروسرویسهای وابسته باشد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-61920
- https://www.cvedetails.com/cve/CVE-2025-21059/
- https://github.com/authlib/authlib/security/advisories/GHSA-pq5p-34cr-23v9
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-61920
- https://vuldb.com/?id.327948
- https://github.com/authlib/authlib/commit/867e3f87b072347a1ae9cf6983cc8bbf88447e5e
- https://nvd.nist.gov/vuln/detail/CVE-2025-61920
- https://cwe.mitre.org/data/definitions/20.html
- https://cwe.mitre.org/data/definitions/400.html
- https://cwe.mitre.org/data/definitions/770.html