Предопределенный путь извлечения комплекта Snipe-IT не обеспечивает изоляцию клиента Full Multiple Company Support (FMCS) на целевом объекте извлечения. В отличие от одиночного, массового, API, аксессуаров, лицензий и расходных путей, App\Services\PredefineKitCheckoutService никогда не вызывает $item->canCheckoutTo($target); он выполняет только проверку политики субъекта против элемента и проверку доступности перед сохранением извлечения. При включенном FMCS пользователь, не являющийся суперпользователем, который принадлежит как минимум к двум компаниям и имеет разрешение assets.checkout, может выполнить POST в /kits/{kit}/checkout с идентификатором user_id, принадлежащим только компании B, и назначить этому пользователю актив компании A (а также лицензии на комплекты, расходные материалы и аксессуары), минуя проверку на несоответствие компании, которая блокирует ту же операцию на любом другом пути оформления заказа.
Проблема исправлена в Snipe-IT 8.7.2; он был проверен во время выполнения в версии 8.6.3 и проверен кодом в версии 8.7.1, а затронутая служба не проходила проверку с 2019 года, поэтому более ранние развертывания FMCS, вероятно, также затронуты.
Показать оригинальное описание (EN)
Snipe-IT's predefined kit checkout path does not enforce Full Multiple Company Support (FMCS) tenant isolation on the checkout target. Unlike the single, bulk, API, accessory, license and consumable checkout paths, App\Services\PredefinedKitCheckoutService never calls $item->canCheckoutTo($target); it only performs the actor-vs-item policy check and an availability check before persisting the checkout. With FMCS enabled, a non-superuser who belongs to at least two companies and holds the assets.checkout permission can POST to /kits/{kit}/checkout with a user_id belonging only to company B and have a company-A asset (and likewise kit licenses, consumables and accessories) assigned to that user, bypassing the company-mismatch check that blocks the same operation on every other checkout path. The issue is fixed in Snipe-IT 8.7.2; it was runtime-verified on v8.6.3 and code-inspected on v8.7.1, and the affected service has lacked the check since 2019, so earlier FMCS deployments are likely also affected.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Snipeitapp Snipe-It
cpe:2.3:a:snipeitapp:snipe-it:*:*:*:*:*:*:*:*
|
— |
8.7.2
|