Postiz is an AI social media scheduling tool. Prior to version 2.21.3, the POST /public/v1/upload-from-url endpoint accepts a user-supplied URL and fetches it server-side using axios.get() with no SSRF protections. The only validation is a file extension check (.png, .jpg, etc.) which is trivially bypassed by appending an image extension to any URL path. An authenticated API user can fetch internal network resources, cloud instance metadata, and other internal services, with the response data uploaded to storage and returned to the attacker. This issue has been patched in version 2.21.3.
Postiz versions prior to 2.21.3 contain a Server-Side Request Forgery (SSRF) vulnerability in the POST /public/v1/upload-from-url endpoint that allows authenticated API users to fetch internal network resources and cloud metadata without proper validation. The vulnerability bypasses file extension checks through URL path manipulation, enabling attackers to access sensitive internal services and exfiltrate data. With a CVSS score of 7.7 and publicly available exploits, this poses an immediate risk to organizations using Postiz for social media management.
IMMEDIATE ACTIONS:
1. Upgrade Postiz to version 2.21.3 or later immediately
2. Review API access logs for the POST /public/v1/upload-from-url endpoint to identify suspicious requests
3. Audit all uploaded files from this endpoint for the past 90 days to detect exfiltrated data
4. Revoke and rotate API keys for all users with access to the upload endpoint
5. Implement network segmentation to isolate Postiz instances from sensitive internal networks
PATCHING GUIDANCE:
- Deploy version 2.21.3 in a test environment first
- Verify patch effectiveness by testing URL validation with internal IP addresses and metadata endpoints
- Schedule production deployment during maintenance windows
COMPENSATING CONTROLS (if immediate patching not possible):
- Implement Web Application Firewall (WAF) rules to block requests to /public/v1/upload-from-url endpoint
- Restrict outbound network access from Postiz servers to only required external domains
- Disable the upload-from-url feature entirely until patching is complete
- Implement strict IP whitelisting for API access
- Monitor for suspicious URL patterns in request logs (internal IPs, metadata endpoints, localhost)
DETECTION RULES:
- Alert on POST requests to /public/v1/upload-from-url with URLs containing: 169.254.169.254, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- Monitor for file uploads with suspicious metadata or internal IP addresses in filenames
- Track API key usage patterns for unusual access to upload endpoint
الإجراءات الفورية:
1. ترقية Postiz إلى الإصدار 2.21.3 أو أحدث على الفور
2. مراجعة سجلات وصول API لنقطة النهاية POST /public/v1/upload-from-url لتحديد الطلبات المريبة
3. تدقيق جميع الملفات المرفوعة من هذه النقطة النهاية خلال آخر 90 يوماً للكشف عن البيانات المسربة
4. إلغاء وتدوير مفاتيح API لجميع المستخدمين الذين لديهم وصول إلى نقطة النهاية
5. تنفيذ تقسيم الشبكة لعزل مثيلات Postiz عن الشبكات الداخلية الحساسة
إرشادات التصحيح:
- نشر الإصدار 2.21.3 في بيئة الاختبار أولاً
- التحقق من فعالية التصحيح بواسطة اختبار التحقق من صحة URL مع عناوين IP الداخلية ونقاط نهاية البيانات الوصفية
- جدولة النشر في الإنتاج خلال نوافذ الصيانة
الضوابط البديلة (إذا لم يكن التصحيح الفوري ممكناً):
- تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر الطلبات إلى نقطة النهاية /public/v1/upload-from-url
- تقييد الوصول الخارج من خوادم Postiz إلى النطاقات الخارجية المطلوبة فقط
- تعطيل ميزة upload-from-url بالكامل حتى يتم إكمال التصحيح
- تنفيذ قائمة بيضاء صارمة لعناوين IP لوصول API
- مراقبة أنماط URL المريبة في سجلات الطلبات (عناوين IP الداخلية، نقاط نهاية البيانات الوصفية، localhost)
قواعد الكشف:
- تنبيه على طلبات POST إلى /public/v1/upload-from-url مع عناوين URL تحتوي على: 169.254.169.254، 127.0.0.1، 10.0.0.0/8، 172.16.0.0/12، 192.168.0.0/16
- مراقبة تحميلات الملفات ببيانات وصفية مريبة أو عناوين IP داخلية في أسماء الملفات
- تتبع أنماط استخدام مفاتيح API للوصول غير المعتاد إلى نقطة النهاية