CVE-2026-71569
Apache Camel: حارس إشعارات Webhook في Camel-A2A يقبل عناوين IPv6 المحلية الفريدة التي يُوصل إليها عبر اسم مضيف
- تم النشر
- 29/10/2026
- محدث
- 29/10/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 30/10/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:Nملخص
ثغرة تزوير الطلبات من جانب الخادم (SSRF) في مكوّن Apache Camel A2A. تؤثر هذه المشكلة في Apache Camel: من 4.21.0 قبل 4.22.2. صنّف WebhookUrlValidator مضيف إشعار ويب دفعي في موضعين غير متوافقين. فقد كان المضيف المكتوب كقيمة IP حرفية يُطابَق مقابل قائمة من بادئات نصية تُسمّي النطاق المحلي الفريد IPv6 وهو fc00::/7، بينما كان المضيف الذي يُوصَل إليه عبر اسم يُحلَّل ويُصنَّف العنوان الناتج باستخدام مسندات InetAddress وهي isLoopbackAddress وisAnyLocalAddress وisLinkLocalAddress وisSiteLocalAddress. وهذه المسندات لا تغطي نفس النطاق الذي تغطيه قائمة البادئات: فـ isSiteLocalAddress يُبلّغ عن الكتلة المهملة fec0::/10 وليس عن العناوين المحلية الفريدة fc00::/7 التي حلّت محلّها، ولا يحمل JDK أي مسند لها على الإطلاق. وبالتالي كان العنوان نفسه يُقبل أو يُرفض تبعًا لطريقة كتابته، وكان عنوان URL لإشعار ويب يُحلّ اسم مضيفه إلى fc00::/7 يمرّ عبر حارس كان يرفض العنوان المطابق نفسه عند تقديمه كقيمة حرفية. ثم أرسل PushNotificationDispatcher إشعار الدفع إلى ذلك العنوان، مع أي ترويسة Authorization محمولة في التكوين نفسه، والتي يوفّر المستدعي المسجِّل مخططها وبيانات اعتمادها. ويصل عنوان URL لإشعار الويب بوصفه TaskPushNotificationConfig.url من المستدعي الذي يسجّل إشعار الدفع، لذا فهو خاضع لتحكّم المهاجم، وقيمة allowLocalWebhookUrls هي false افتراضيًا، وهو التكوين الذي يُتوقّع فيه أن يصمد الحارس. ولا تُعاد الاستجابة إلى المستدعي الذي سجّل التكوين، لذا فإن ما تُتيحه هذه الثغرة هو طلب HTTPS صادر أعمى من عملية Camel إلى عنوان داخلي كُتب الحارس ليرفضه؛ ويتطلّب الوصول إلى خدمة بتلك الطريقة إضافةً إلى ذلك أن يُحلّ الاسم إلى fc00::/7 في البيئة المستهدفة، وأن تكون هناك خدمة HTTPS تستمع على ذلك العنوان، وأن تنجح مصافحة TLS للاسم المطلوب، ولهذا قُدِّرت الخطورة متوسطة. وكان الفحص المسبق للنص نفسه خاطئًا في الاتجاه الآخر أيضًا: فقد طابق نص المضيف الخام دون أن يثبت أولًا أن المضيف قيمة IP حرفية، لذا رُفض رفضًا قاطعًا أي اسم يبدأ فقط بـ fc أو fd، مثل fcm.googleapis.com. ويُنصح المستخدمون بالترقية إلى الإصدار 4.23.0 الذي يصلح المشكلة. وإذا كان المستخدمون على سلسلة إصدارات 4.22.x فيُقترح عليهم الترقية إلى 4.22.2. وقد بلغ خط إصدار 4.21.x نهاية عمره قبل حلّ هذه المشكلة ولن يتلقّى إصلاحًا، لذا يجب على عمليات النشر عليه الانتقال إلى إصدار مدعوم. ويصنّف المساران الحرفي والمحلول الآن العنوان من بايتاته الخام باستخدام مصنّف مشترك واحد، يتعرّف على fc00::/7 ومساحة العناوين المشتركة 100.64.0.0/10، وكذلك على العناوين المتوافقة مع IPv4 وعناوين NAT64 (64:ff9b::/96) و6to4 (2002::/16) التي لا يكون عنوان IPv4 المضمّن فيها قابلًا للتوجيه عالميًا. وبالنسبة لعمليات النشر التي لا تستطيع الترقية فورًا، ضع المصادقة أمام مسار تكوين إشعارات الدفع A2A بحيث لا يصل عنوان URL لإشعار الويب من مستدعٍ غير موثوق، وامنع الخروج من عملية Camel إلى fc00::/7 على مستوى الشبكة؛ وحيث لا تحتاج عملية النشر إلى IPv6، فإن بدء JVM بالخيار -Djava.net.preferIPv4Stack=true يزيل فئة العناوين التي تدور حولها الثغرة. لاحظ أن allowLocalWebhookUrls=false هو الافتراضي بالفعل ولا يسدّ الثغرة بحدّ ذاته.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.