Actual is a local-first personal finance tool. Prior to version 26.2.1, in multi-user mode (OpenID), the sync API endpoints (`/sync/*`) don't verify that the authenticated user owns or has access to the file being operated on. Any authenticated user can read, modify, and overwrite any other user's budget files by providing their file ID. Version 26.2.1 patches the issue.
CVE-2026-27638 is a critical authorization bypass vulnerability in Actual Budget affecting versions prior to 26.2.1. Authenticated users can access, modify, and overwrite other users' budget files through unprotected sync API endpoints, enabling unauthorized financial data manipulation. The vulnerability is particularly severe in multi-user OpenID deployments commonly used in Saudi organizations for shared financial management.
IMMEDIATE ACTIONS:
1. Identify all Actual Budget instances in your environment and verify version numbers
2. Disable multi-user/OpenID mode if not operationally critical until patching is complete
3. Restrict network access to Actual Budget sync API endpoints (/sync/*) using firewall rules or WAF policies
4. Review access logs for suspicious sync API activity (cross-user file access patterns)
5. Audit all budget files for unauthorized modifications in the past 90 days
PATCHING:
1. Upgrade Actual Budget to version 26.2.1 or later immediately
2. Test patch in non-production environment first
3. Implement change management procedures for production deployment
4. Verify authorization checks are functioning post-patch by testing cross-user access attempts
COMPENSATING CONTROLS (if immediate patching not possible):
1. Implement API gateway authentication and authorization layer validating user-file ownership
2. Deploy WAF rules blocking /sync/* endpoints except for authorized administrative users
3. Implement database-level row-level security (RLS) on budget file tables
4. Enable comprehensive API audit logging with alerts on cross-user file access
5. Segment Actual Budget instances by department/user group to limit blast radius
DETECTION:
1. Monitor for HTTP requests to /sync/* endpoints with file IDs not matching authenticated user's assigned files
2. Alert on multiple sync API calls from single user to different file IDs within short timeframe
3. Track budget file modification timestamps against user activity logs for discrepancies
4. Implement SIEM rules detecting unauthorized file access patterns in application logs
الإجراءات الفورية:
1. حدد جميع مثيلات Actual Budget في بيئتك والتحقق من أرقام الإصدارات
2. عطّل وضع متعدد المستخدمين/OpenID إذا لم يكن حرجاً تشغيلياً حتى يتم تطبيق التصحيح
3. قيّد الوصول إلى نقاط نهاية واجهة برمجة التطبيقات للمزامنة (/sync/*) باستخدام قواعد جدار الحماية أو سياسات WAF
4. راجع سجلات الوصول للنشاط المريب في واجهة برمجة التطبيقات للمزامنة (أنماط الوصول إلى الملفات عبر المستخدمين)
5. تدقيق جميع ملفات الميزانية للتعديلات غير المصرح بها في آخر 90 يوماً
تطبيق التصحيح:
1. ترقية Actual Budget إلى الإصدار 26.2.1 أو أحدث فوراً
2. اختبر التصحيح في بيئة غير الإنتاج أولاً
3. تطبيق إجراءات إدارة التغيير لنشر الإنتاج
4. تحقق من أن فحوصات التفويض تعمل بعد التصحيح بواسطة اختبار محاولات الوصول عبر المستخدمين
الضوابط البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. تطبيق طبقة بوابة API للمصادقة والتفويض التحقق من ملكية المستخدم للملف
2. نشر قواعد WAF تحظر نقاط نهاية /sync/* باستثناء المستخدمين الإداريين المصرح لهم
3. تطبيق أمان على مستوى الصف (RLS) على جداول ملفات الميزانية
4. تفعيل تسجيل تدقيق شامل لواجهة برمجة التطبيقات مع تنبيهات للوصول إلى الملفات عبر المستخدمين
5. فصل مثيلات Actual Budget حسب القسم/مجموعة المستخدم لتحديد نطاق التأثير
الكشف:
1. مراقبة طلبات HTTP إلى نقاط نهاية /sync/* مع معرفات الملفات التي لا تطابق ملفات المستخدم المصرح له
2. تنبيه على استدعاءات واجهة برمجة التطبيقات للمزامنة المتعددة من مستخدم واحد إلى معرفات ملفات مختلفة في إطار زمني قصير
3. تتبع طوابع زمن تعديل ملف الميزانية مقابل سجلات نشاط المستخدم للتناقضات
4. تطبيق قواعد SIEM للكشف عن أنماط الوصول غير المصرح بها في سجلات التطبيق