A vulnerability was identified in NousResearch hermes-agent up to 2026.4.16. This affects the function check_all_command_guards of the file tools/approval.py of the component Batch Runner. Such manipulation leads to missing authorization. The attack can be launched remotely. The exploit is publicly available and might be used. The vendor was contacted early about this disclosure but did not respond in any way.
CVE-2026-9350 is a high-severity authorization bypass vulnerability in NousResearch hermes-agent affecting the Batch Runner component. The vulnerability in the check_all_command_guards function allows remote attackers to bypass authorization controls, potentially enabling unauthorized command execution. With no patch available and the vendor unresponsive, immediate compensating controls are critical for affected Saudi organizations.
IMMEDIATE ACTIONS:
1. Inventory all hermes-agent deployments across your organization, particularly those running versions up to 2026.4.16
2. Isolate affected systems from production networks if possible, or implement network segmentation
3. Enable comprehensive logging and monitoring of all Batch Runner activities
4. Review access logs for suspicious command execution patterns
COMPENSATING CONTROLS:
1. Implement network-level access controls restricting Batch Runner to authorized users/systems only
2. Deploy Web Application Firewall (WAF) rules to detect and block suspicious batch processing requests
3. Implement additional authentication layer (MFA) for Batch Runner access
4. Apply principle of least privilege - restrict service account permissions to minimum required
5. Monitor check_all_command_guards function calls for anomalies using SIEM
DETECTION RULES:
1. Alert on any Batch Runner API calls without proper authorization headers
2. Monitor for repeated failed authorization checks followed by successful command execution
3. Track unusual command patterns in batch jobs (e.g., system commands, file access outside normal scope)
4. Flag any direct function calls to check_all_command_guards with null/empty parameters
PATCHING STRATEGY:
1. Contact NousResearch for security updates or consider alternative solutions
2. Evaluate migration to patched versions when available
3. If no patch emerges, plan for system replacement or decommissioning
4. Maintain vendor communication for security advisories
الإجراءات الفورية:
1. قم بحصر جميع نشرات hermes-agent عبر مؤسستك، خاصة تلك التي تعمل بالإصدارات حتى 2026.4.16
2. عزل الأنظمة المتأثرة عن شبكات الإنتاج إن أمكن، أو تطبيق تقسيم الشبكة
3. تفعيل السجلات الشاملة ومراقبة جميع أنشطة Batch Runner
4. مراجعة سجلات الوصول للبحث عن أنماط تنفيذ أوامر مريبة
عناصر التحكم البديلة:
1. تطبيق عناصر التحكم في الوصول على مستوى الشبكة لتقييد Batch Runner للمستخدمين/الأنظمة المصرح بها فقط
2. نشر قواعد جدار الحماية (WAF) للكشف عن طلبات معالجة الدفعات المريبة وحجبها
3. تطبيق طبقة مصادقة إضافية (MFA) لوصول Batch Runner
4. تطبيق مبدأ أقل صلاحية - تقييد صلاحيات حساب الخدمة بالحد الأدنى المطلوب
5. مراقبة استدعاءات دالة check_all_command_guards للكشف عن الشذوذ باستخدام SIEM
قواعد الكشف:
1. تنبيه على أي استدعاءات Batch Runner API بدون رؤوس تفويض مناسبة
2. مراقبة فحوصات التفويض الفاشلة المتكررة متبوعة بتنفيذ أوامر ناجح
3. تتبع أنماط الأوامر غير العادية في وظائف الدفعات
4. وضع علامة على أي استدعاءات مباشرة لدالة check_all_command_guards بمعاملات فارغة/خالية
استراتيجية التصحيح:
1. التواصل مع NousResearch للحصول على تحديثات أمنية أو النظر في حلول بديلة
2. تقييم الترقية إلى إصدارات مصححة عند توفرها
3. إذا لم يظهر تصحيح، خطط لاستبدال النظام أو إيقافه
4. الحفاظ على التواصل مع البائع للحصول على تنبيهات الأمان