- شناسه CVE-2025-4690 :CVE
- CWE-1333 :CWE
- yes :Advisory
- منتشر شده: آگوست 19, 2025
- به روز شده: آگوست 19, 2025
- امتیاز: 4.3
- نوع حمله: Denial of Service
- اثر گذاری: Unknown
- حوزه: برنامه نویسی
- برند: Google
- محصول: AngularJS
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch نشده
چکیده
آسیبپذیری انکار سرویس مبتنی بر عبارت های منظم (ReDoS) در فیلتر linky ماژول ngSanitize در تمام نسخههای AngularJS به دلیل استفاده از یک عبارت منظم ناکارآمد شناسایی شده است. این آسیب پذیری امکان اجرای حمله ReDoS را با ورودیهای بزرگ و به طور خاص طراحیشده فراهم میکند که میتواند باعث مصرف بیش از حد منابع مرورگر یا توقف کامل برنامه شود.
توضیحات
آسیبپذیری CVE-2025-4690 از نوع پیچیدگی ناکارآمد عبارت منظم (مطابق با CWE-1333) است که در ماژول ngSanitize فریم ورک AngularJS رخ میدهد. این آسیب پذیری به شرایطی اشاره دارد که یک عبارت منظم به دلیل طراحی ضعیف و ناکارآمد با ورودیهای خاص، زمان اجرای بیش از حد طولانی (super-linear) پیدا کند که این مسئله منجر به حمله انکار سرویس (ReDoS) میشود.
در این مورد، فیلتر linky در ماژول ngSanitize که برای شناسایی و تبدیل لینکها در متن ورودی به لینکهای HTML امن استفاده میشود، از یک عبارت منظم آسیبپذیر استفاده میکند. این عبارت منظم در برابر ورودیهای بزرگ و به ویژه رشتههای طولانی از کاراکترهای الفبایی متوالی، به دلیل backtracking بیش از حد، زمان اجرای غیرخطی ایجاد میکند. در نتیجه، پردازش متن طولانی یا ورودی های طراحی شده به صورت مخرب باعث می شود مرورگر یا برنامه به شدت کند شده یا حتی کاملاً متوقف شود.
حمله از راه دور قابل اجرا بوده، نیازی به سطح دسترسی اولیه ندارد، نیازمند تعامل کاربر برای ارائه ورودی مخرب است. پیامد این آسیب پذیری صرفاً بر در دسترس پذیری برنامه است و هیچ تأثیری بر محرمانگی یا یکپارچگی ندارد.
فریمورک AngularJS در وضعیت پایان دوره پشتیبانی (EOL) قرار دارد و تیم توسعه رسمی دیگر بهروزرسانی امنیتی ارائه نمیکند. بنابراین، هیچ پچ رسمی برای رفع این ضعف منتشر نشده است. با این حال، تیم HeroDevs نسخههای غیررسمی (NES) را با شمارههای v1.9.10 و v1.5.26 منتشر کرده است که این آسیبپذیری را برطرف میکنند و برای کاربران یا سازمانهایی که نیاز به پشتیبانی پس از EOL دارند، قابل استفاده هستند.
CVSS
Score | Severity | Version | Vector String |
4.3 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L |
لیست محصولات آسیب پذیر
Versions | Product |
affected at >=0.0.0 | AngularJS |
لیست محصولات بروز شده
Versions | Product |
v1.9.10 and v1.5.26 (HeroDevs) | AngularJS (none-official) |
نتیجه گیری
با توجه به اینکه AngularJS در وضعیت پایان دوره پشتیبانی (EOL) قرار دارد و هیچ بهروزرسانی یا پچ رسمی برای رفع آن ارائه نخواهد شد، کاربران و توسعهدهندگان باید فوراً اقدامات کاهش ریسک را در برنامههای خود اعمال کنند. بهترین راهکار بلندمدت، مهاجرت به فریمورکهای مدرنتر مانند Angular یا React است، چرا که این کار نه تنها امنیت برنامه را افزایش میدهد، بلکه پایداری و قابلیت نگهداری آن را نیز بهبود میبخشد.
برای برنامههایی که هنوز از AngularJS استفاده میکنند، نسخههای NES غیررسمی HeroDevs (v1.9.10 و v1.5.26) میتوانند بهعنوان راهکار موقت برای کاهش ریسک حمله ReDoS مورد استفاده قرار گیرند، زیرا این نسخهها فیلتر linky را ایمنتر کردهاند. علاوه بر این، باید ورودیهای کاربر به فیلتر linky محدود و اعتبارسنجی شوند، طول رشتهها کنترل شده و از ارسال ورودیهای طولانی یا طراحیشده برای سوءاستفاده جلوگیری گردد.
استفاده از فایروال برنامه وب (WAF) برای شناسایی و مسدود کردن ورودیهای مشکوک و مانیتورینگ مداوم عملکرد برنامه برای شناسایی تأخیرهای غیرعادی یا مصرف بیش از حد منابع نیز ضروری است، زیرا این عملکردها میتوانند نشانه حمله ReDoS باشند. همچنین، آموزش توسعهدهندگان برای اجتناب از استفاده مستقیم از فیلتر linky با ورودیهای کاربر و رعایت بهترین شیوههای ایمنسازی ورودیها، بخش مهمی از استراتژی کاهش ریسک محسوب میشود.
با اجرای این اقدامات بهصورت یکپارچه، میتوان از تأثیرات حملات ReDoS جلوگیری کرد، پایداری و در دسترسپذیری برنامه را حفظ نمود و ریسکهای مرتبط با استفاده از AngularJS را به حداقل رساند.
امکان استفاده در تاکتیک های Mitre Attack
- actic (TA0001) – Initial Access
Sub-technique (T1190) – Exploit Public-Facing Application
مهاجم میتواند با ارسال ورودیهای بزرگ و بهطور خاص طراحیشده به فیلتر linky ماژول ngSanitize، اجرای پردازش عبارت منظم را طولانی کرده و باعث توقف یا کندی شدید برنامه شود. این حمله از راه دور، بدون نیاز به احراز هویت و با تعامل کاربر قابل اجرا است. - Tactic (TA0005) – Defense Evasion
Sub-technique (T1204) – User Execution (Optional)
با توجه به پیچیدگی حمله ReDoS و وابستگی آن به ورودیهای خاص، شناسایی حمله بدون استفاده از نظارت مداوم بر عملکرد برنامه و مکانیزمهای WAF دشوار است. - Tactic (TA0040) – Impact (Optional)
Sub-technique (T1499) – Endpoint Denial of Service (Optional)
این آسیبپذیری منجر به اختلال در دسترسی یا کندی شدید مرورگر یا برنامه میشود و اثرگذاری آن بر دسترسپذیری است، هرچند محرمانگی یا یکپارچگی دادهها تحت تأثیر قرار نمیگیرد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-4690
- https://www.herodevs.com/vulnerability-directory/cve-2025-4690
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-4690
- https://vuldb.com/?id.320550
- https://codepen.io/herodevs/pen/RNNEPzP/751b91eab7730dff277523f3d50e4b77
- https://nvd.nist.gov/vuln/detail/CVE-2025-4690
- https://cwe.mitre.org/data/definitions/1333.html