InvenTree — это система управления запасами с открытым исходным кодом. До версии 1.2.6 некоторые конечные точки API, связанные с операциями с большими объемами данных, можно было взломать для кражи конфиденциальной информации из базы данных. Конечные точки API массовых операций (например, `/api/part/`, `/api/stock/`, `/api/order/so/allocation/` и другие) принимают параметр фильтров, который передается непосредственно в ORM queryset.filter(**filters) Django без внесения в список разрешенных полей.
Это позволяет любому аутентифицированному пользователю просматривать отношения модели, используя синтаксис поиска __ Django, и выполнять слепое извлечение данных на основе логических значений. Эта проблема исправлена в версии 1.2.6 и 1.3.0 (или выше). Пользователям следует обновиться до исправленных версий.
Никаких известных обходных путей не существует.
Показать оригинальное описание (EN)
InvenTree is an Open Source Inventory Management System. Prior to version 1.2.6, certain API endpoints associated with bulk data operations can be hijacked to exfiltrate sensitive information from the database. The bulk operation API endpoints (e.g. `/api/part/`, `/api/stock/`, `/api/order/so/allocation/`, and others) accept a filters parameter that is passed directly to Django's ORM queryset.filter(**filters) without any field allowlisting. This enables any authenticated user to traverse model relationships using Django's __ lookup syntax and perform blind boolean-based data extraction. This issue is patched in version 1.2.6, and 1.3.0 (or above). Users should update to the patched versions. No known workarounds are available.
Характеристики атаки
Последствия
Строка CVSS v3.1