ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يؤدي غياب التحقق من الأصل في اتصالات WebSockets (CWE-1385) وسياسة النطاقات المتقاطعة التساهلية مع النطاقات غير الموثوقة (CWE-942) في خادم الويب الخاص بالتطوير (ADK Web) ضمن Google Agent Development Kit (ADK) لـ Java (الإصدارات com.google.adk:google-adk-dev من 0.1.0 إلى ما قبل 1.13.0 والإصدارات com.google.adk:google-adk-maven-plugin من 0.3.0 إلى ما قبل 1.13.0) إلى السماح لمهاجم عن بُعد بالتحكم في وكيل قيد التشغيل محليًا وقراءة بياناته عبر صفحة ويب خبيثة يزورها المطور أثناء تشغيل الخادم. تقبل نقطة نهاية WebSocket المتاحة في /run_live الاتصالات من أي أصل بشكل افتراضي (وهو مُثبّت برمجياً عبر setAllowedOrigins("*") في الإصدارات من 0.1.0 إلى 1.5.0، ويُضبط افتراضيًا على * عبر adk.web.cors.origins في الإصدارات من 1.6.0 إلى 1.12.0)، ومنذ الإصدار 0.4.0 تُرجع واجهة برمجة تطبيقات REST القيمة Access-Control-Allow-Origin: * افتراضيًا. ونظرًا لعدم احتواء الخادم على نظام مصادقة وصدور الطلبات من متصفح المطور (لذا فإن الربط بـ localhost لا يمنع الاستغلال)، تستطيع صفحة عابرة للنطاقات إرسال رسائل إلى الوكيل (مما يؤدي إلى تفعيل الأدوات المسجلة)، وبث استجابات الوكيل، بالإضافة إلى سرد الجلسات والعناصر أو قراءتها أو إنشائها أو حذفها. في الإصدارات من 1.6.0 إلى 1.12.0، يمكن للمستخدمين تنفيذ إجراءات التخفيف عبر ضبط خاصية adk.web.cors.origins لتشمل قائمة سماح صريحة للنطاقات الموثوقة (مثل http://localhost:8000). تم إصلاح الثغرة في الإصدار 1.13.0، والذي يفرض ضبطًا افتراضيًا لنفس الأصل (same-origin) لكل من سياسة CORS ونقطة نهاية WebSocket في /run_live، كما يرفض طلبات إعادة ربط نظام أسماء النطاقات (DNS-rebinding) عبر حلقة الاسترجاع (loopback).
المعالجة
المراجع
- تصحيحhttps://github.com/google/adk-java/commit/5667d382ab5078a0d6e8f7184713a6bab767e004
- تصحيحhttps://github.com/google/adk-java/commit/1ae5078072e13e101318e32833f1db323ef084e1
- تصحيحhttps://github.com/google/adk-java/pull/1222
- تصحيحhttps://github.com/google/adk-java/commit/c2b087cbaf44f44d20dc946d8f2391506a2fce3d
- مرجعhttps://github.com/google/adk-java/issues/1257
- مرجعhttps://github.com/google/adk-java/releases/tag/v1.13.0
- مرجعhttps://github.com/google/adk-java/releases/tag/v1.6.0