InvenTree — это система управления запасами с открытым исходным кодом. До версии 1.2.3 небезопасные серверные шаблоны можно было перехватить, чтобы предоставить клиенту защищенную информацию. При создании пользовательских пакетных кодов сервер InvenTree использует настраиваемый шаблон jinja2, который может быть изменен штатным пользователем для извлечения конфиденциальной информации или выполнения кода на сервере.
Для этой проблемы требуется доступ пользователя с предоставленными разрешениями персонала, а затем запрос на создание пользовательского пакетного кода через API. Если шаблон был изменен вредоносным образом, вызов API для создания нового пакетного кода может быть выполнен другими пользователями, и код шаблона будет выполнен в их пользовательском контексте. Код был исправлен, чтобы гарантировать, что вся генерация шаблонов выполняется в безопасном изолированном контексте.
Эта проблема решена в версии 1.2.3 и во всех версиях, начиная с 1.3.0. Доступны некоторые обходные пути. Шаблон батч-кода — это настраиваемый глобальный параметр, который может быть настроен любым пользователем с доступом персонала.
Чтобы предотвратить редактирование этого параметра, его можно переопределить на системном уровне, установив значение по умолчанию, что предотвратит его редактирование. Для этого требуется доступ системного администратора, и его нельзя изменить со стороны клиента после запуска сервера. Для установок InvenTree до версии 1.2.3 рекомендуется переопределить глобальные настройки `STOCK_BATCH_CODE_TEMPLATE` и `PART_NAME_FORMAT` на системном уровне, чтобы предотвратить редактирование.
Показать оригинальное описание (EN)
InvenTree is an Open Source Inventory Management System. Prior to version 1.2.3, insecure server-side templates can be hijacked to expose secure information to the client. When generating custom batch codes, the InvenTree server makes use of a customizable jinja2 template, which can be modified by a staff user to exfiltrate sensitive information or perform code execution on the server. This issue requires access by a user with granted staff permissions, followed by a request to generate a custom batch code via the API. Once the template has been modified in a malicious manner, the API call to generate a new batch code could be made by other users, and the template code will be executed with their user context. The code has been patched to ensure that all template generation is performed within a secure sandboxed context. This issue has been addressed in version 1.2.3, and any versions from 1.3.0 onwards. Some workarounds are available. The batch code template is a configurable global setting which can be adjusted via any user with staff access. To prevent this setting from being edited, it can be overridden at a system level to a default value, preventing it from being edited. This requires system administrator access, and cannot be changed from the client side once the server is running. It is recommended that for InvenTree installations prior to 1.2.3 the `STOCK_BATCH_CODE_TEMPLATE` and `PART_NAME_FORMAT` global settings are overridden at the system level to prevent editing.
Характеристики атаки
Последствия
Строка CVSS v3.1