PublicCMS v5.202506.d and earlier is vulnerable to stored XSS. Uploaded PDFs can contain JavaScript payloads and bypass PDF security checks in the backend CmsFileUtils.java. If a user uploads a PDF file containing a malicious payload to the system and views it, the embedded JavaScript payload can be triggered, resulting in issues such as credential theft, arbitrary API execution, and other security concerns. This vulnerability affects all file upload endpoint, including /cmsTemplate/save, /file/doUpload, /cmsTemplate/doUpload, /file/doBatchUpload, /cmsWebFile/doUpload, etc.
PublicCMS v5.202506.d and earlier contains a critical stored XSS vulnerability in PDF file upload functionality that allows attackers to embed malicious JavaScript payloads bypassing backend security checks. When users view uploaded PDFs, embedded scripts execute in their browsers, enabling credential theft and arbitrary API execution. This affects multiple file upload endpoints across the CMS platform and poses significant risk to organizations using PublicCMS for content management.
IMMEDIATE ACTIONS:
1. Identify all PublicCMS instances in your environment running v5.202506.d or earlier
2. Restrict access to file upload endpoints (/cmsTemplate/save, /file/doUpload, /cmsTemplate/doUpload, /file/doBatchUpload, /cmsWebFile/doUpload) to authenticated users only
3. Implement file type validation at the application level to reject PDFs with embedded scripts
4. Disable PDF preview functionality in browsers until patching is complete
PATCHING GUIDANCE:
1. Upgrade PublicCMS to version 5.202507 or later immediately
2. Apply vendor security patches to CmsFileUtils.java that implement proper PDF sanitization
3. Test patches in non-production environment before deployment
4. Verify file upload endpoints reject malicious payloads post-patch
COMPENSATING CONTROLS (if patching delayed):
1. Implement Web Application Firewall (WAF) rules to detect and block JavaScript payloads in file uploads
2. Use Content Security Policy (CSP) headers to prevent inline script execution
3. Implement file upload scanning with antivirus/malware detection tools
4. Serve uploaded PDFs from a separate domain with restricted JavaScript execution
5. Require manual review of all uploaded PDFs before user access
DETECTION RULES:
1. Monitor file upload endpoints for POST requests containing JavaScript keywords (script, onerror, onload, eval)
2. Alert on PDF files exceeding expected size thresholds
3. Log and review all PDF uploads for embedded executable content
4. Monitor browser console errors and XSS attempts in application logs
5. Track user sessions accessing recently uploaded PDFs for suspicious activity
الإجراءات الفورية:
1. حدد جميع مثيلات PublicCMS في بيئتك التي تعمل بالإصدار 5.202506.d أو الإصدارات الأقدم
2. قيد الوصول إلى نقاط نهاية تحميل الملفات للمستخدمين المصرح لهم فقط
3. طبق التحقق من نوع الملف على مستوى التطبيق لرفض ملفات PDF التي تحتوي على برامج نصية مضمنة
4. عطل وظيفة معاينة PDF في المتصفحات حتى يتم إصلاح المشكلة
إرشادات التصحيح:
1. قم بترقية PublicCMS إلى الإصدار 5.202507 أو الإصدارات الأحدث فوراً
2. طبق تصحيحات أمان المورد على CmsFileUtils.java التي تطبق تنظيف PDF مناسب
3. اختبر التصحيحات في بيئة غير الإنتاج قبل النشر
4. تحقق من رفض نقاط نهاية تحميل الملفات للحمولات الضارة بعد التصحيح
الضوابط البديلة (إذا تأخر التصحيح):
1. طبق قواعد جدار حماية تطبيقات الويب (WAF) للكشف عن حمولات JavaScript وحظرها في تحميلات الملفات
2. استخدم رؤوس سياسة أمان المحتوى (CSP) لمنع تنفيذ البرامج النصية المضمنة
3. طبق فحص تحميل الملفات باستخدام أدوات الكشف عن الفيروسات والبرامج الضارة
4. قدم ملفات PDF المحملة من مجال منفصل مع تنفيذ JavaScript مقيد
5. اطلب مراجعة يدوية لجميع ملفات PDF المحملة قبل وصول المستخدم
قواعد الكشف:
1. راقب نقاط نهاية تحميل الملفات لطلبات POST تحتوي على كلمات رئيسية JavaScript
2. أصدر تنبيهات لملفات PDF التي تتجاوز حدود الحجم المتوقعة
3. سجل وراجع جميع تحميلات PDF للمحتوى القابل للتنفيذ المضمن
4. راقب أخطاء وحاولات XSS في سجلات التطبيق
5. تتبع جلسات المستخدم التي تصل إلى ملفات PDF المحملة مؤخراً للنشاط المريب