ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
إطار عمل Angular هو منصة تطوير لبناء تطبيقات الويب للجوال سطح المكتب باستخدام TypeScript/JavaScript ولغات أخرى. من الإصدار 21.2.0 حتى 21.2.25 والإصدار 22.2.1، تحتفظ توجيهات RouterLink التي يتم تصييرها أثناء التصيير من جهة الخادم في Node.js بنسخ من كائنات UrlTree المحسوبة طوال دورة حياة كل طلب. عندما يتم تعيين queryParamsHandling على merge أو preserve، إما لكل رابط أو عبر defaultQueryParamsHandling، يمكن لكل رابط مُصيَّر الاحتفاظ بنسخة من معلمات الاستعلام التي يتحكم بها المهاجم في كائن UrlTree الخاص به. عندما تقوم الوكلاء أو موزعات الأحمال في البنية الأساسية بتحويل سلاسل الاستعلام كبيرة الحجم دون رفضها عند الطرف، يمكن للعديد من الروابط المتأثرة والتصييرات المتداخلة تضخيم استخدام الذاكرة المؤقتة حتى يتم استنفاد ذاكرة Node.js وإنهاء عامل SSR. تؤدي أسماء معاملات الاستعلام الرقمية إلى زيادة ضغط تخصيص الذاكرة ولكنها ليست مطلوبة، ويتم تحرير الذاكرة بعد اكتمال التصيير، ولا تتأثر تطبيقات الصفحة الواحدة (SPA) التي تعمل على جانب العميل حصراً. تم إصلاح هذه المشكلة في الإصدارين 21.2.25 و22.2.1.
المعالجة
المراجع
- مرجعhttps://github.com/angular/angular/security/advisories/GHSA-57xq-rjx2-v5xh
- مرجعhttps://github.com/angular/angular/issues/70908
- مرجعhttps://github.com/angular/angular/pull/70953
- مرجعhttps://github.com/angular/angular/commit/14793bfe4b44a36ed4b7e49a60458ec711c2b41a
- مرجعhttps://github.com/angular/angular/commit/a131f77d92808ad5c2f3fa4dc6fde36825f12c5a
- مرجعhttps://github.com/angular/angular/releases/tag/v21.2.25
- مرجعhttps://github.com/angular/angular/releases/tag/v22.2.1