К обсуждениям

CodeWhale SSRF: проверка DNS pinning при lookup failure

Редакция VOne Технологии

Defensive-аудит CodeWhale 0.8.64 для DNS-failure ветки URL fetch: resolver state, pinned address и запрет сетевого вызова в mock transport.

Сначала отделите симптом от факта: CodeWhale URL fetch guard

Advisory описывает TOCTOU-ветку DNS pinning: при ошибке lookup проверка могла продолжаться без зафиксированного адреса; исправление входит в 0.8.64. Применимость устанавливают по реально загруженной версии и доступности именно этого entry point; совпадение названия продукта, общего класса ошибки или CVE в scanner недостаточно. Зафиксируйте package/image/binary digest и effective configuration. GHSA-6v2g-fpxh-pmmh задаёт внешнюю границу исследования, а primary change показывает, что изменил maintainer. Пока provenance или reachability не подтверждены, состояние остаётся UNKNOWN. Advisory не сообщает, что конкретная система была атакована, и материал не воспроизводит опасный input.

Матрица решения: resolver matrix hostname class × lookup result × pinned set × transport destination × verdict

Соберите «resolver matrix hostname class × lookup result × pinned set × transport destination × verdict». Нужные поля: CodeWhale version, resolver implementation, fake hostname classes, deterministic lookup outcomes, pinned-address set, transport counter и timeout policy. Каждую строку свяжите с измерением, а не предположением: runtime query, immutable hash, test recorder или bounded counter. Desired config и effective behavior держите в разных колонках. Применяйте TRUE, FALSE, UNKNOWN и NOT-APPLICABLE с короткой причиной. Удалите hostname, IP, usernames, tokens, document content, memory dumps и raw request bodies; для воспроизводимости достаточно относительных ids, размеров, типов и итоговых классов.

Два контроля без опасного payload

В unit fixture использовать fake resolver: public result, disallowed result и failure; HTTP transport заменить recorder, который не открывает socket. Перед выполнением запишите SHA-256 fixture, исходные counters, deadline, memory/process ceiling и rollback. Positive control доказывает, что harness достигает нужной функции; negative control должен остановиться на validator, authorization, containment или lifecycle boundary до необратимого эффекта. После каждого случая выполните cleanup и повторно проверьте baseline. Не увеличивайте вход до фактического отказа: достаточно test double, recorder, inert marker либо малого synthetic object.

Что считать PASS для CVE-2026-75856

PASS разрешён только при таком результате: Только разрешённый успешно pinned result передаётся recorder; disallowed и lookup failure завершаются до transport, повторная резолюция не меняет destination. Практическое действие: Обновить до 0.8.64; до этого отключить URL-fetch tools для недоверенных inputs и не считать сетевой ACL заменой application validation. Если runtime входит в affected range и path доступен, ставят UPDATE-REQUIRED. NOT-REACHABLE относится только к проверенной функции; UNKNOWN сохраняют при неподтверждённом backport или расходящихся hashes. После update повторяют ровно ту же матрицу и один штатный smoke-test. Одновременные изменения network, policy, dependency или data state запрещены: они делают причинность непроверяемой.

Красные линии и передача владельцу

Немедленный stop-rule: Не обращаться к реальным доменам/IP, не проверять cloud metadata и остановиться при создании socket либо nondeterministic DNS. Не расширяйте привилегии, глубину, размер, скорость или охват после неожиданного warning, timeout, cross-boundary call или state mutation. Передайте только version/commit digest, fake resolver cases, pinned set, transport call count, timeout verdict и fixture cleanup, плюс московское время, expected/actual, advisory/primary URLs и владельца rollback. Очистите secrets и персональные данные. Такой пакет подтверждает выбранный инвариант, но не отсутствие прошлой эксплуатации, безопасность всей системы, применимость к другой версии, поисковую популярность, индексацию или позиции.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 5 сентября 2026 года по прямой advisory и первичному upstream изменению. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.