pyLoad is a free and open-source download manager written in Python. From version 0.4.0 to before version 0.5.0b3.dev97, the set_config_value() API endpoint allows users with the non-admin SETTINGS permission to modify any configuration option without restriction. The reconnect.script config option controls a file path that is passed directly to subprocess.run() in the thread manager's reconnect logic. A SETTINGS user can set this to any executable file on the system, achieving Remote Code Execution. The only validation in set_config_value() is a hardcoded check for general.storage_folder — all other security-critical settings including reconnect.script are writable without any allowlist or path restriction. This issue has been patched in version 0.5.0b3.dev97.
pyLoad download manager versions 0.4.0 to 0.5.0b3.dev96 allow users with SETTINGS permission to modify critical configuration options including reconnect.script, enabling Remote Code Execution through subprocess execution. The vulnerability exists due to insufficient validation in the set_config_value() API endpoint, with only storage_folder being protected while other security-critical settings remain unrestricted.
تحتوي نقطة نهاية API set_config_value() في pyLoad على فجوة في التحقق من الصلاحيات تسمح لمستخدمي SETTINGS بتعديل أي خيار تكوين باستثناء general.storage_folder. يمكن لمهاجم استخدام هذا لتعيين خيار reconnect.script إلى ملف تنفيذي تعسفي، مما يؤدي إلى تنفيذ أوامر بعيدة عند تشغيل منطق إعادة الاتصال.
مدير التنزيل pyLoad من الإصدار 0.4.0 إلى 0.5.0b3.dev96 يسمح للمستخدمين بصلاحية SETTINGS بتعديل خيارات التكوين الحرجة بما في ذلك reconnect.script، مما يتيح تنفيذ أوامر بعيدة. تنشأ الثغرة من التحقق غير الكافي في نقطة نهاية set_config_value() API حيث يتم حماية storage_folder فقط بينما تبقى الإعدادات الأخرى الحرجة غير مقيدة.
Upgrade pyLoad to version 0.5.0b3.dev97 or later immediately. Implement strict access controls limiting SETTINGS permission scope, enforce an allowlist for modifiable configuration options, validate all file paths in configuration values, and monitor set_config_value() API calls for suspicious activity. Restrict subprocess execution to whitelisted executables only.
قم بترقية pyLoad إلى الإصدار 0.5.0b3.dev97 أو أحدث فوراً. طبق ضوابط وصول صارمة لتحديد نطاق صلاحية SETTINGS، وفرض قائمة بيضاء للخيارات القابلة للتعديل، والتحقق من جميع مسارات الملفات في قيم التكوين، ومراقبة استدعاءات API set_config_value() للنشاط المريب. قيد تنفيذ العمليات الفرعية على الملفات التنفيذية المدرجة في القائمة البيضاء فقط.