Технологии, деньги и рынки — первымиНаписать в редакциюСтудия Dilami LabDilami Lab

Обход SSRF-фильтра в Gotenberg через зону IPv6 в Go

11 ноября опубликовали обход защиты от SSRF в сервисе Gotenberg. Адрес [::] блокировался фильтром, а запись [::%251] проходила и открывала доступ к сервисам на localhost.

Обход SSRF-фильтра в Gotenberg через зону IPv6 в Go
Иллюстрация: habr.com

По описанию, уязвимость возникает не из-за самого Gotenberg, а из-за того, как функции netip.Prefix.Contains и IsUnspecified в языке Go обрабатывают зону IPv6. Фильтр проверяет адрес через эти функции, и зона в записи адреса позволяет обойти блокировку.

Похожая проверка есть во многих сервисах, которые работают с вебхуками и превью ссылок, поэтому риск касается не только одного продукта.

Воспроизведение и исправление

Автор воспроизводит утечку на небольшом сервисе. Затем он описывает исправление, которое состоит из трёх шагов, и закрепляет его тестом, чтобы проверка не сломалась в будущем.

Нашли ошибку или есть что добавить? Напишите редакции
Источник: habr.com
0 новых новостей