Indico is an event management system that uses Flask-Multipass, a multi-backend authentication system for Flask. In versions prior to 3.3.12, due to vulnerabilities in TeXLive and obscure LaTeX syntax that allowed circumventing Indico's LaTeX sanitizer, it is possible to use specially-crafted LaTeX snippets which can read local files or execute code with the privileges of the user running Indico on the server. Note that if server-side LaTeX rendering is not in use (ie `XELATEX_PATH` was not set in `indico.conf`), this vulnerability does not apply. It is recommended to update to Indico 3.3.12 as soon as possible. It is also strongly recommended to enable the containerized LaTeX renderer (using `podman`), which isolates it from the rest of the system. As a workaround, remove the `XELATEX_PATH` setting from `indico.conf` (or comment it out or set it to `None`) and restart the `indico-uwsgi` and `indico-celery` services to disable LaTeX functionality.
Indico event management system versions prior to 3.3.12 contain a critical LaTeX injection vulnerability allowing arbitrary file read and code execution with server privileges. The vulnerability exploits weaknesses in TeXLive and Indico's LaTeX sanitizer through specially-crafted LaTeX snippets. This affects only installations with server-side LaTeX rendering enabled (XELATEX_PATH configured). Immediate patching or disabling LaTeX functionality is required.
IMMEDIATE ACTIONS:
1. Verify if XELATEX_PATH is configured in indico.conf on all Indico instances
2. If LaTeX rendering is not required, immediately comment out or remove XELATEX_PATH setting and set to None
3. Restart indico-uwsgi and indico-celery services after configuration change
PATCHING:
1. Update Indico to version 3.3.12 or later immediately
2. Apply all security patches from CERN's official repository
3. Test patches in staging environment before production deployment
COMPENSATING CONTROLS (if immediate patching not possible):
1. Disable LaTeX rendering by removing XELATEX_PATH configuration
2. Implement network segmentation to restrict Indico server access
3. Run Indico with minimal required privileges (dedicated non-root user)
4. Implement strict input validation on event description and abstract fields
5. Monitor LaTeX processing logs for suspicious patterns
CONTAINERIZATION:
1. Enable containerized LaTeX renderer using podman to isolate LaTeX processing
2. Configure resource limits on LaTeX container (CPU, memory, disk)
3. Implement read-only filesystem for LaTeX container where possible
DETECTION:
1. Monitor for LaTeX syntax patterns: \input, \immediate, \write, \openout commands
2. Alert on file access attempts from indico-uwsgi/celery processes to /etc, /root, sensitive directories
3. Monitor process execution spawned by LaTeX renderer for unexpected binaries
4. Log all changes to XELATEX_PATH configuration
الإجراءات الفورية:
1. تحقق مما إذا كان XELATEX_PATH مكوناً في indico.conf على جميع مثيلات Indico
2. إذا لم يكن عرض LaTeX مطلوباً، قم فوراً بتعليق أو إزالة إعداد XELATEX_PATH وتعيينه إلى None
3. أعد تشغيل خدمات indico-uwsgi و indico-celery بعد تغيير الإعدادات
التصحيح:
1. قم بتحديث Indico إلى الإصدار 3.3.12 أو أحدث فوراً
2. طبق جميع تصحيحات الأمان من مستودع CERN الرسمي
3. اختبر التصحيحات في بيئة التجريب قبل نشرها في الإنتاج
الضوابط البديلة (إذا لم يكن التصحيح الفوري ممكناً):
1. عطل عرض LaTeX بإزالة إعداد XELATEX_PATH
2. طبق تقسيم الشبكة لتقييد الوصول إلى خادم Indico
3. قم بتشغيل Indico بأقل امتيازات مطلوبة (مستخدم مخصص غير جذر)
4. طبق التحقق الصارم من المدخلات على حقول وصف الحدث والملخص
5. راقب سجلات معالجة LaTeX للأنماط المريبة
الحاويات:
1. فعّل معالج LaTeX المحتوي باستخدام podman لعزل معالجة LaTeX
2. كوّن حدود الموارد على حاوية LaTeX (CPU والذاكرة والقرص)
3. طبق نظام الملفات للقراءة فقط لحاوية LaTeX حيث أمكن
الكشف:
1. راقب أنماط بناء جملة LaTeX: أوامر \input و \immediate و \write و \openout
2. أصدر تنبيهات عند محاولات الوصول إلى الملفات من عمليات indico-uwsgi/celery إلى مجلدات /etc و /root والمجلدات الحساسة
3. راقب تنفيذ العمليات التي تم إطلاقها بواسطة معالج LaTeX للملفات الثنائية غير المتوقعة
4. سجل جميع التغييرات على إعداد XELATEX_PATH