Compressing is a compressing and uncompressing lib for node. Prior to 2.1.1 and 1.10.5, the patch for CVE-2026-24884 relies on a purely logical string validation within the isPathWithinParent utility. This check verifies if a resolved path string starts with the destination directory string but fails to account for the actual filesystem state. By exploiting this "Logical vs. Physical" divergence, an attacker can bypass the security check using a Directory Poisoning technique (pre-existing symbolic links). This vulnerability is fixed in 2.1.1 and 1.10.5.
CVE-2026-40931 is a critical path traversal vulnerability in the Compressing Node.js library that allows attackers to bypass directory validation through symbolic link exploitation. The vulnerability affects versions prior to 2.1.1 and 1.10.5, enabling arbitrary file extraction outside intended directories. With public exploits available and widespread use of Node.js in Saudi enterprises, this poses an immediate risk to application security across multiple sectors.
IMMEDIATE ACTIONS:
1. Identify all Node.js applications using Compressing library versions <2.1.1 or <1.10.5 via npm audit and dependency scanning
2. Implement input validation to reject archive files with suspicious symbolic links before processing
3. Run decompression operations in isolated containers with minimal filesystem permissions
4. Monitor for suspicious file extraction patterns in application logs
PATCHING GUIDANCE:
1. Upgrade Compressing to version 2.1.1 or 1.10.5 immediately
2. Test patches in development environment before production deployment
3. Implement staged rollout to minimize service disruption
COMPENSATING CONTROLS (if patching delayed):
1. Disable automatic decompression features until patched
2. Implement strict file permission policies (umask 0077 for extraction directories)
3. Use chroot/containerization to isolate decompression operations
4. Validate extracted file paths against whitelist before processing
5. Implement filesystem monitoring for unexpected symbolic link creation
DETECTION RULES:
1. Monitor for symlink creation in temporary extraction directories
2. Alert on file extraction attempts outside designated directories
3. Track failed path validation attempts in application logs
4. Monitor for unusual archive file structures with embedded symlinks
الإجراءات الفورية:
1. تحديد جميع تطبيقات Node.js التي تستخدم مكتبة Compressing بإصدارات <2.1.1 أو <1.10.5 عبر npm audit
2. تنفيذ التحقق من المدخلات لرفض ملفات الأرشيف التي تحتوي على روابط رمزية مريبة
3. تشغيل عمليات فك الضغط في حاويات معزولة بأذونات نظام ملفات محدودة
4. مراقبة أنماط استخراج الملفات المريبة في سجلات التطبيق
إرشادات التصحيح:
1. ترقية Compressing إلى الإصدار 2.1.1 أو 1.10.5 فوراً
2. اختبار التصحيحات في بيئة التطوير قبل نشرها في الإنتاج
3. تنفيذ طرح مرحلي لتقليل انقطاع الخدمة
الضوابط البديلة (إذا تأخر التصحيح):
1. تعطيل ميزات فك الضغط التلقائي حتى يتم التصحيح
2. تنفيذ سياسات أذونات الملفات الصارمة
3. استخدام chroot/containerization لعزل عمليات فك الضغط
4. التحقق من مسارات الملفات المستخرجة مقابل قائمة بيضاء
5. مراقبة نظام الملفات للكشف عن إنشاء روابط رمزية غير متوقعة