Стабильная версия InvoiceNinja v5 отображает поле «условия» счета-фактуры или предложения на клиентском портале, используя директиву необработанного вывода Laravel Blade {!! $entity->terms !!} (resources/views/portal/ninja2020/invoices/includes/terms.blade.php) без очистки HTML. StoreInvoiceRequest.php только удаляет символы новой строки из поля и не очищает HTML. Аутентифицированный пользователь с доступом к созданию счетов может установить в поле условий через REST API (PUT /api/v1/invoices/{id}) полезную нагрузку HTML/JavaScript, которая выполняется в браузере клиента при просмотре счета, что позволяет осуществлять кражу файлов cookie сеанса и захват учетной записи клиента. Это путь к коду, отличный от ранее опубликованного поля XSS описания позиции счета-фактуры (GHSA-98wm-cxpw-847p/CVE-2026-33628).
Показать оригинальное описание (EN)
InvoiceNinja v5-stable renders an invoice or quote's "terms" field in the client portal using Laravel Blade's raw output directive {!! ->terms !!} (resources/views/portal/ninja2020/invoices/includes/terms.blade.php) with no HTML sanitization.
Характеристики атаки
Последствия
Строка CVSS v3.1