MyBooks — это расширенный и простой в использовании веб-сервер для управления персональными электронными книгами, также известный как Talebook. В версии 3.41.2 и более ранних версиях обработчик AdminSettings.post в webserver/handlers/admin.py принимает имена ключей SOCIAL_AUTH без проверки кавычек или символов новой строки, а файл SettingsLoader.dumpfile в webserver/loader.py объединяет эти имена в сгенерированный исходный файл Python auto.py, не экранируя их. Администратор может отправить созданное имя ключа SOCIAL_AUTH, которое закроет словарь настроек и внедрит произвольные инструкции Python.
Приложение позже выполняет эти инструкции, поскольку SettingsLoader.loadfile импортирует auto.py как модуль, а установка autoreload в true вызывает restart_async, поэтому супервизор процесса перезапускает службу и запускает импорт. При успешной эксплуатации команды выполняются с привилегиями учетной записи службы приложения и могут раскрывать данные, изменять файлы, обеспечивать постоянство или нарушать работу службы. Сопутствующие уязвимости авторизации и регистрации могут снизить требования к эффективным привилегиям при цепной атаке, но автономная уязвимость требует доступа администратора.
Эта проблема исправлена в версии 3.42.0.
Показать оригинальное описание (EN)
MyBooks is an enhanced and easy-to-use personal ebook management web server also known as Talebook. In 3.41.2 and earlier, the AdminSettings.post handler in webserver/handlers/admin.py accepts SOCIAL_AUTH key names without validating quotes or newline characters, and SettingsLoader.dumpfile in webserver/loader.py concatenates those names into the generated Python source file auto.py without escaping them. An administrator can submit a crafted SOCIAL_AUTH key name that closes the settings dictionary and injects arbitrary Python statements. The application later executes those statements because SettingsLoader.loadfile imports auto.py as a module, and setting autoreload to true invokes restart_async so a process supervisor restarts the service and triggers the import. Successful exploitation executes commands with the privileges of the application service account and can disclose data, modify files, establish persistence, or disrupt the service. Related authorization and registration vulnerabilities can reduce the effective privilege requirement in a chained attack, but the standalone vulnerability requires administrator access. This issue is fixed in version 3.42.0.
Характеристики атаки
Последствия
Строка CVSS v4.0