Защитная инструкция по Firefly III и ghsa-9mmg-q95p-gp67: проверить применимость, выполнить обратимый стендовый сценарий, распознать безопасный исход и остановиться без опасного payload.
Паспорт применимости: Firefly III
Начальная задача — связать runtime с узким механизмом advisory. Для Firefly III Reviewed advisory ghsa-9mmg-q95p-gp67 подтверждает отдельную проблему: управление webhook может недостаточно связывать объект с владельцем и сетевой политикой назначения. Пакетная граница записи: composer:grumpydictator/firefly-iii <= 6.5.9; исправленная версия в Reviewed record не указана. SBOM не завершает проверку: нужны runtime version, digest, команде запуска и build provenance. Для отсутствующего компонента или отключённого механизма применяют not-applicable с доказательством; при неизвестном происхождении — unknown. Severity critical задаёт приоритет разбора, но не доказывает эксплуатацию, ущерб или состояние конкретной установки. GitHub фиксирует публикацию 2026-06-15 и обновление 2026-08-27; эти даты не заменяют локальный inventory.
Наблюдения до изменения Firefly III
До update или containment сохраните набор наблюдений, специфичный для этой карточки: версия приложения, два test users, webhook owner ID, разрешённые события, destination policy и audit trail. Рядом с каждым наблюдением сохраняют происхождение, время и ответственного. Отмечайте ожидание, факт, неизвестность и неприменимость; отсутствие записи не равно защите. Отдельно укажите входной субъект, policy/parser, защищаемый объект и вид контролируемого отказа. Это отделяет «управление webhook может недостаточно связывать объект с владельцем и сетевой политикой назначения» от обычной ошибки конфигурации, stale process, proxy/cache или прежнего инцидента. Повторите тот же сбор baseline после действия без новых инструментов. Редактируйте tokens, cookies, реальные адреса, персональные данные и закрытые пути; полные дампы в редакционный пакет не входят. Если health был красным заранее, сначала закройте этот инцидент.
Стендовый сценарий без опасного входа
Стенд ограничивается следующим обратимым действием: создать по одному пустому webhook для двух пользователей и попробовать от первого только прочитать metadata второго. Три шага не переставляют: normal A, bounded B, repeat A2. До запуска задают synthetic input, disposable scope, time и resource budget. Ожидаемый исход записывают до запуска: чужой webhook получает 403 и не раскрывает destination, свой объект читается, ни один webhook не отправляет данные. Между A, B и A2 не меняйте одновременно dependency, роли, network и storage. Сбой процесса, таймаут, пустота или вмешательство после B не подтверждают защиту. Не копируйте рабочий exploit из источника, не направляйте запрос к чужой системе и не используйте production данные. Если A2 отличается от A, вернитесь к baseline.
Как классифицировать результат
Таблица решения для Firefly III содержит version boundary, runtime digest, active-path evidence, исходы A/B/A2, health и cleanup. Статус passed-bounded-check допустим только когда чужой webhook получает 403 и не раскрывает destination, свой объект читается, ни один webhook не отправляет данные. Старая ветка требует update-required, новая без A/B/A2 остаётся patched-unverified, нехватка данных — unknown, провал — failed-safe-check. Если Reviewed record не называет first patched version, не придумывайте её: используйте vendor release или containment и оставляйте patch boundary unknown. Область зелёного результата заканчивается на этом artifact и configuration. Он не является общей гарантией безопасности Firefly III, не исключает соседние дефекты и не доказывает качество всей установки.
Остановка, возврат и передача владельцу
Опыт прекращают, когда нужны реальные финансовые записи, рабочий URL, изменение чужого webhook или повышение роли. При stop criterion эксперимент не масштабируют ни по правам, ни по ресурсам. Заранее подготовленный возврат: удалить оба webhook и accounts, отозвать сессии, подтвердить нулевую очередь доставок. Завершение требует A2, нулевого следа вне стенда и отзыва временных sessions/credentials. Набор доказательств без лишних данных: версия, synthetic object IDs, два auth decisions, queue count и cleanup. Добавьте время, expected/actual, две прямые ссылки и ответственного за очистку. Не включайте секреты, активный payload, личные обстоятельства и инфраструктуру третьих лиц. Evidence pack годится для решения, а не для заявлений о спросе, поисковой выдаче или состоянии чужой системы.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным, первичным и исследовательским источникам; факты, даты, версии и ссылки перепроверены. Реальные пользовательские данные, активные опасные payload и вымышленные результаты тестов не использовались.
Источники и проверка
- GitHub Advisory Database ghsa-9mmg-q95p-gp67 по Firefly III проверено 2026-08-30
- Прямая upstream или research-страница Firefly III проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.