ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يقوم مكون ScopingHttpClient في Symfony HttpClient بدمج خيارات نطاقه الافتراضي (مثل auth_bearer أو auth_basic) في الطلب قبل حل عنوان URL نسبي مقابل base_uri، مما يسمح بإرسال مرجع مسار شبكة مثل " /evil.example/steal" إلى مصدر آخر مع بيانات اعتماد النطاق الافتراضي، مما ينتج عنه احتمال الكشف عن بيانات الاعتماد تلك لخادم يتحكم فيه المهاجم. يؤثر هذا على Symfony في الإصدارات 5.x السابقة لـ 5.4.56، و6.x السابقة لـ 6.4.50، و7.x السابقة لـ 7.4.23، و8.x السابقة لـ 8.1.11. يقع عنوان URL المُحَلَّل خارج مصدر base URI، ومع ذلك فإنه يحتفظ بالخيارات المدمجة، بينما لا يتلقى التنسيق المطلق "https://evil.example/steal" أي منها. يحدث الشيء نفسه مع منفذ مختلف أو جزء معلومات المستخدم على نفس المُضيف. يمكن الوصول إلى هذا كلما قام المهاجم بالتحكم في بداية عنوان URL المُمرر إلى عميل مُنشأ باستخدام base_uri وبيانات الاعتماد، بما في ذلك تلك المُنشأة باستخدام HttpClient::createForBaseUri() أو المكوّنة تحت framework.http_client.scoped_clients. لحل المشكلة، بعد حل عنوان URL نسبي مقابل base URI للنطاق الافتراضي، يقوم ScopingHttpClient الآن بمقارنة المخطط والسلطة للنتيجة مع تلك الخاصة بbase URI بالطريقة التي يُرسل بها الطلب.