در نسخه 3.5.3 نرمافزار Papermerge، یک آسیبپذیری امنیتی شناسایی شده است که به کاربران استاندارد (Standard User) اجازه میدهد تا از طریق اجرای کد از راه دور (Remote Code Execution یا RCE) دسترسی کامل به سیستم پیدا کنند.
جزئیات فنی آسیبپذیری
این نقص امنیتی از طریق یک حمله Directory Traversal در فراخوانی API مربوط به /api/documents/upload رخ میدهد. مهاجم با آپلود یک فایل دستکاری شده که حاوی توالیهای پیمایش دایرکتوری در نام فایل است، میتواند یک فایل .pth مخرب پایتون را در دایرکتوری site-packages مفسر پایتون بنویساند.
مکانیسم اجرا و محدودیتها
- شرط اجرا: کدهای جاسازی شده در فایل
.pthبلافاصله اجرا نمیشوند و تنها پس از ریاستارت (Restart) بعدی مفسر پایتون (مانند بازنشانی اپلیکیشن یا Workerها) فعال میگردند. - دسترسی مورد نیاز: مهاجم باید دارای یک حساب کاربری استاندارد و احراز هویت شده باشد.
- پیشنیاز سیستمی: فرآیند Papermerge باید دسترسی Write به دایرکتوری
site-packagesداشته باشد تا حمله با موفقیت انجام شود.
وضعیت فعلی و اکسپلویت
در حال حاضر کد اکسپلویت (Exploit) این آسیبپذیری به صورت عمومی در قالب یک مخزن GitHub و یک فایل PDF منتشر شده است. با توجه به اینکه زمان اجرای کد وابسته به ریاستارت سیستم است و تحت کنترل مستقیم مهاجم نیست، این آسیبپذیری به عنوان یک RCE مشروط (Conditionally-gated) دستهبندی شده است.