ذكاء اصطناعيقراءة دقيقتين

Claude Code 2.1.281 يصلح حالة كان فيها وضع auto يحذف مجلدًا دون طلب إذن

المغزى

أي فلتر أمان يعمل على نص الأمر قبل تنفيذه يجب أن يفترض أن جزءًا من هذا النص لم يُكتب بعد، وهذا درس يتجاوز أداة واحدة.

أصلحت Anthropic في الإصدار 2.1.281 من Claude Code حالة كانت تسمح بتنفيذ أمر حذف متكرر لمجلد دون أن يطلب البرنامج إذن المستخدم. وكانت الحالة تظهر عند التشغيل في وضع auto أو مع خيار dangerously-skip-permissions، حين يكون هدف الحذف ناتجًا عن command substitution فقط.

والـ command substitution آلية في الـ shell تجعل أمرًا يُنفَّذ أولًا، ثم يوضع ناتجه داخل أمر آخر. ومثالها الذي ورد في سجل التغييرات أمر حذف هدفه ناتج أمر pwd، أي المجلد الحالي.

ولفهم سبب مرور هذه الحالة، يجب النظر إلى طريقة عمل طبقة الأذونات. فهي تقرأ نص الأمر قبل تنفيذه وتبحث فيه عن أشكال خطيرة. لكن الجزء المكتوب بصيغة command substitution ليس نصًا بعد، بل أمر ثانٍ سيُنفَّذ أولًا ليُنتج النص. فعند لحظة الفحص، ترى الأداة أمر حذف وبجانبه شيئًا لا تستطيع قراءته، أي أن الهدف الحقيقي للحذف لا يكون موجودًا أصلًا في اللحظة التي يُتخذ فيها القرار.

وبعد الإصلاح، أصبح البرنامج يطلب الإذن في هذه الحالة حتى لو كان لدى المستخدم allow rule على Bash، ما لم يُفعَّل متغير بيئة مخصص لتعطيل هذا السؤال.

والدرس أوسع من هذا الخلل تحديدًا. فأي فلتر يعمل على نص الأمر يجب أن يفترض أن جزءًا منه قد لا يكون مكتوبًا بعد لحظة الفحص.

وبالنسبة للفرق التي تشغّل agents في وضع auto أو دون طلب أذونات، لا يُعد هذا الإصدار تحديثًا اختياريًا. كما يمنح الحادث سببًا ملموسًا لتشغيل الـ agents داخل container معزول، بدلًا من الاعتماد على طبقة الأذونات وحدها.

المصادر

  1. سجل التغييرات الرسمي لـ Claude Code
  2. سجل التغييرات نفسه كنص خام

من عدد الخميس 13 ربيع الآخر - 24 سبتمبر

أخبار ذات صلة

أخبار الخميس 13 ربيع الآخر - 24 سبتمبر