OpenClaw before 2026.3.22 contains an allowlist bypass vulnerability in system.run approvals that fails to unwrap /usr/bin/time wrappers. Attackers can bypass executable binding restrictions by using an unregistered time wrapper to reuse approval state for inner commands.
OpenClaw before version 2026.3.22 contains a critical allowlist bypass vulnerability in system.run approvals that fails to properly unwrap /usr/bin/time wrappers, allowing attackers to circumvent executable binding restrictions. Attackers can exploit this by using unregistered time wrappers to reuse approval states for unauthorized inner commands, potentially leading to arbitrary code execution. This vulnerability affects Node.js environments and requires immediate patching to prevent privilege escalation and unauthorized command execution.
IMMEDIATE ACTIONS:
1. Identify all OpenClaw installations in your environment: grep -r 'openclaw' /opt /srv /home --include='package.json' && npm list openclaw
2. Check current version: npm list openclaw | grep openclaw
3. Isolate affected systems from production networks if version < 2026.3.22
PATCHING GUIDANCE:
1. Update OpenClaw to version 2026.3.22 or later: npm update openclaw@latest
2. For production systems, test patch in staging environment first
3. Restart all Node.js applications using OpenClaw after patching
4. Verify patch installation: npm list openclaw
COMPENSATING CONTROLS (if immediate patching not possible):
1. Implement strict file system permissions on /usr/bin/time: chmod 755 /usr/bin/time
2. Disable system.run approval functionality if not critical
3. Implement application-level command whitelisting beyond OpenClaw's allowlist
4. Monitor and log all system.run execution attempts
5. Restrict Node.js process privileges using AppArmor/SELinux profiles
DETECTION RULES:
1. Monitor for /usr/bin/time wrapper usage in system.run calls: auditctl -w /usr/bin/time -p x -k openclaw_time_wrapper
2. Alert on approval state reuse for different commands: grep -i 'approval.*reuse\|time.*wrapper' /var/log/openclaw.log
3. Monitor for unexpected child processes spawned via time wrapper: ps aux | grep -E 'time.*-f|time.*--' | grep -v grep
4. Enable Node.js audit logging: NODE_OPTIONS='--trace-warnings' npm start
الإجراءات الفورية:
1. تحديد جميع تثبيتات OpenClaw في بيئتك: grep -r 'openclaw' /opt /srv /home --include='package.json' && npm list openclaw
2. التحقق من الإصدار الحالي: npm list openclaw | grep openclaw
3. عزل الأنظمة المتأثرة عن شبكات الإنتاج إذا كان الإصدار < 2026.3.22
إرشادات التصحيح:
1. تحديث OpenClaw إلى الإصدار 2026.3.22 أو أحدث: npm update openclaw@latest
2. بالنسبة لأنظمة الإنتاج، اختبر التصحيح في بيئة التجريب أولاً
3. أعد تشغيل جميع تطبيقات Node.js التي تستخدم OpenClaw بعد التصحيح
4. تحقق من تثبيت التصحيح: npm list openclaw
الضوابط البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. تطبيق أذونات نظام الملفات الصارمة على /usr/bin/time: chmod 755 /usr/bin/time
2. تعطيل وظيفة موافقة system.run إذا لم تكن حرجة
3. تطبيق قائمة بيضاء للأوامر على مستوى التطبيق بما يتجاوز قائمة OpenClaw
4. مراقبة وتسجيل جميع محاولات تنفيذ system.run
5. تقييد امتيازات عملية Node.js باستخدام ملفات تعريف AppArmor/SELinux
قواعد الكشف:
1. مراقبة استخدام مجلد /usr/bin/time في استدعاءات system.run: auditctl -w /usr/bin/time -p x -k openclaw_time_wrapper
2. تنبيه عند إعادة استخدام حالة الموافقة للأوامر المختلفة: grep -i 'approval.*reuse\|time.*wrapper' /var/log/openclaw.log
3. مراقبة العمليات الفرعية غير المتوقعة التي يتم إطلاقها عبر مجلد الوقت: ps aux | grep -E 'time.*-f|time.*--' | grep -v grep
4. تفعيل تسجيل تدقيق Node.js: NODE_OPTIONS='--trace-warnings' npm start