هشدار امنیتی SafeNest
| CVE | CVE-2026-105314 |
| Vendor / Product | Papermerge / Papermerge |
| Severity | High |
| CVSS v3.1 | 7.5 |
| CWE | CWE-24 – Path Traversal |
| نسخه آسیبپذیر | Papermerge 3.5.3 |
| نیاز به احراز هویت | بله – کاربر استاندارد |
| وضعیت Exploit | PoC عمومی منتشر شده است |
| پیامد اصلی | Arbitrary File Write / Remote Code Execution |
خلاصه مدیریتی
CVE-2026-105314 یک آسیبپذیری مهم در Papermerge 3.5.3 است که از ضعف Directory Traversal در API آپلود اسناد ناشی میشود. Papermerge یک سامانه مدیریت و آرشیو اسناد است و معمولاً فایلهای سازمانی، PDFها و محتوای داخلی را نگهداری میکند. طبق DBU، یک کاربر استاندارد میتواند از مسیر /api/documents/upload سوءاستفاده کرده و فایل را خارج از دایرکتوری مجاز آپلود قرار دهد.
خطر اصلی این نقص آن است که مهاجم میتواند فایل خاصی را در مسیرهای حساس محیط Python بنویسد. DBU مشخصاً به امکان قرار دادن فایل با پسوند .pth در مسیر site-packages اشاره میکند. چنین فایلهایی هنگام آغاز Python Interpreter پردازش میشوند و در شرایط آسیبپذیر میتوانند باعث اجرای کد شوند. بنابراین مسئله از یک Path Traversal ساده فراتر رفته و میتواند به Remote Code Execution منجر شود.
شرح فنی آسیبپذیری
Path Traversal زمانی رخ میدهد که برنامه مسیر فایل ارائهشده توسط کاربر را به شکل کافی نرمالسازی یا محدود نکند. در نتیجه، مهاجم میتواند با دستکاری نام فایل یا مسیر مقصد، نوشتن فایل را از پوشه تعیینشده خارج کند.
در Papermerge، Endpoint آپلود سند به کاربر مجاز امکان بارگذاری فایل میدهد، اما کنترل مسیر مقصد به اندازه کافی سختگیرانه نیست. این مسئله اجازه میدهد فایل در مسیری قرار گیرد که در حالت عادی نباید توسط کاربر قابل نوشتن باشد. اگر محیط اجرا اجازه نوشتن در مسیر Python packageها را بدهد، این وضعیت میتواند به اجرای کد در راهاندازی بعدی سرویس منتهی شود.
چرا این آسیبپذیری اهمیت دارد؟
Papermerge معمولاً دادههای سازمانی ارزشمند نگهداری میکند. مهاجم در صورت دستیابی به اجرای کد روی سرویس میتواند نهتنها اسناد را مشاهده یا تغییر دهد، بلکه در محدوده دسترسی حساب سرویس به فایلسیستم، پایگاه داده و شبکه داخلی نیز دسترسی پیدا کند.
اگرچه بهرهبرداری به یک حساب استاندارد نیاز دارد، این شرط ریسک را بهطور کامل کاهش نمیدهد. حساب کاربری ممکن است از طریق Credential Stuffing، فیشینگ، نشست سرقتشده یا اشتراک ناامن حساب به دست مهاجم برسد. پس از آن، آسیبپذیری میتواند به افزایش جدی سطح دسترسی منجر شود.
پیامدهای امنیتی احتمالی
- نوشتن فایل خارج از مسیر مجاز آپلود
- تغییر فایلهای برنامه یا پیکربندی در صورت وجود دسترسی
- اجرای کد با سطح دسترسی سرویس Papermerge
- دسترسی غیرمجاز به اسناد سازمانی
- سرقت اطلاعات احراز هویت یا تنظیمات اتصال
- حرکت جانبی در شبکه در صورت دسترسی سرویس به منابع دیگر
راهکار پیشنهادی
نسخه Papermerge باید به آخرین نسخهای که مشکل را اصلاح کرده ارتقا داده شود. اگر نسخه اصلاحشده رسمی هنوز مشخص نیست، تیم امنیت باید Advisoryهای پروژه را دنبال و دسترسی به قابلیت آپلود را محدود کند. همچنین اجرای سرویس با حداقل دسترسی سیستمعامل میتواند دامنه اثر را کاهش دهد.
مهم است که کاربر سرویس Papermerge به مسیرهای Python، فایلهای سیستمی و دایرکتوریهای حساس دسترسی نوشتن غیرضروری نداشته باشد. در Containerها نیز Root filesystem باید تا حد امکان Read-only باشد و فقط Volumeهای ضروری Writable شوند.
کنترلهای جبرانی
- محدودسازی حساب سرویس به حداقل مجوز فایلسیستم
- قرار دادن اپلیکیشن در Container با فایلسیستم محدود
- پایش نوشتن فایل در مسیرهای غیرعادی
- بررسی ایجاد فایلهای .pth ناشناخته
- محدودسازی API آپلود به کاربران ضروری
- فعالسازی MFA برای حسابهای Papermerge در صورت پشتیبانی
بررسی نشانههای سوءاستفاده
مدیران باید مسیرهای Python و دایرکتوریهای مربوط به برنامه را برای فایلهای جدید یا تغییرات غیرمنتظره بررسی کنند. همچنین Restartهای غیرعادی سرویس، Crash، تغییر در رفتار Python و ارتباطات خروجی جدید میتوانند ارزش بررسی داشته باشند.
اولویت اقدام
بالا. وجود PoC عمومی و امکان تبدیل Path Traversal به اجرای کد باعث میشود این مورد برای سازمانهایی که Papermerge را در دسترس کاربران متعدد قرار دادهاند در اولویت Patch قرار گیرد.
منابع
تصویر شاخص: Maksym Kaharlytskyi / Unsplash.

