Защитная инструкция по Shlink и ghsa-p85r-x2wj-mxqj: проверить применимость, выполнить обратимый стендовый сценарий, распознать безопасный исход и остановиться без опасного payload.
Паспорт применимости: Shlink
Зафиксируйте один проверяемый trust boundary до любых действий. Для Shlink Reviewed advisory ghsa-p85r-x2wj-mxqj подтверждает отдельную проблему: автоматическое разрешение title для long URL может инициировать серверный запрос к непубличной цели. Пакетная граница записи: composer:shlinkio/shlink <= 5.0.1; исправленная версия в Reviewed record не указана. Запись dependency сверяют с runtime version, digest, команде запуска и build provenance. Не найденный runtime или закрытая функция дают not-applicable с доказательством; при неизвестном происхождении — unknown. Severity critical задаёт приоритет разбора, но не доказывает эксплуатацию, ущерб или состояние конкретной установки. GitHub фиксирует публикацию 2026-06-15 и обновление 2026-08-27; эти даты не заменяют локальный inventory.
Наблюдения до изменения Shlink
До update или containment сохраните набор наблюдений, специфичный для этой карточки: версия Shlink, флаг title resolution, URL normalizer, DNS и redirect policy, egress log и timeout. Происхождение, время и владелец сопровождают каждое значение. Используйте expected, observed, unknown и not-applicable; пропуск остаётся unknown. Отдельно укажите входной субъект, policy/parser, защищаемый объект и вид контролируемого отказа. Это отделяет «автоматическое разрешение title для long URL может инициировать серверный запрос к непубличной цели» от обычной ошибки конфигурации, stale process, proxy/cache или прежнего инцидента. Исходный и контрольный снимки создают идентичной процедурой. Редактируйте tokens, cookies, реальные адреса, персональные данные и закрытые пути; полные дампы в редакционный пакет не входят. Если health был красным заранее, сначала закройте этот инцидент.
Стендовый сценарий без опасного входа
Единственный разрешённый лабораторный шаг: на локальном resolver-mock сравнить разрешённый публичный fixture и документированный special-address, не подключая внутренний сервис. Три шага не переставляют: normal A, bounded B, repeat A2. До запуска задают synthetic input, disposable scope, time и resource budget. Ожидаемый исход записывают до запуска: special-address отклоняется до соединения и повторно проверяется после redirect, публичный fixture возвращает только тестовый title. Между A, B и A2 не меняйте одновременно dependency, роли, network и storage. Timeout, crash, пустой ответ, неожиданный 500 и ручная правка переводят результат в failed-safe-check. Не копируйте рабочий exploit из источника, не направляйте запрос к чужой системе и не используйте production данные. Если A2 отличается от A, вернитесь к baseline.
Как классифицировать результат
Таблица решения для Shlink содержит version boundary, runtime digest, active-path evidence, исходы A/B/A2, health и cleanup. Статус passed-bounded-check допустим только когда special-address отклоняется до соединения и повторно проверяется после redirect, публичный fixture возвращает только тестовый title. Вердикты ограничены update-required, patched-unverified, unknown и failed-safe-check согласно evidence. Если Reviewed record не называет first patched version, не придумывайте её: используйте vendor release или containment и оставляйте patch boundary unknown. Один успешный прогон не переносится на другие узлы и версии. Он не является общей гарантией безопасности Shlink, не исключает соседние дефекты и не доказывает качество всей установки.
Остановка, возврат и передача владельцу
Красный флаг для остановки: нужны metadata endpoint, рабочая short-link база, private IP или отключение сетевой policy. После stop не увеличивают нагрузку, privileges, объём или время. Заранее подготовленный возврат: удалить короткие тестовые ссылки, закрыть mock и вернуть egress rules из snapshot. Для cleanup нужны успешный A2, нулевые изменения вне fixture и удалённые временные ресурсы. Для передачи достаточно следующего: package digest, нормализованные цели, DNS/redirect decisions, число запросов и cleanup. Добавьте время, expected/actual, две прямые ссылки и ответственного за очистку. Не включайте секреты, активный payload, личные обстоятельства и инфраструктуру третьих лиц. Документ фиксирует путь проверки; он не прогнозирует SEO и не приписывает читателю выполненный опыт.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным, первичным и исследовательским источникам; факты, даты, версии и ссылки перепроверены. Реальные пользовательские данные, активные опасные payload и вымышленные результаты тестов не использовались.
Источники и проверка
- GitHub Advisory Database ghsa-p85r-x2wj-mxqj по Shlink проверено 2026-08-30
- Прямая upstream или research-страница Shlink проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.