Защита AsyncSafeTransport SSRF компании Mealie (mealie/pkgs/safehttp/transport.py) один раз разрешает целевое имя хоста, проверяет разрешенный IP-адрес на соответствие правилам частного диапазона, но затем выдает фактический исходящий HTTP-запрос с использованием исходного имени хоста, который базовый асинхронный транспорт повторно разрешает независимо. Поскольку проверенный IP-адрес никогда не привязывается к фактическому соединению, злоумышленник, перепривязывающий DNS (возвращающий общедоступный IP-адрес для проверки проверки и частный IP-адрес/IP-адрес с метаданными в реальное соединение) побеждает защиту. Это доступно любому аутентифицированному пользователю через /api/recipes/create/url, /api/recipes/test-scrape-url и /api/recipes/{slug}/image, а парсер отражает полученный контент обратно запрашивающей стороне, позволяя аутентифицированному пользователю читать внутренние службы HTTP и конечные точки облачных метаданных.
Показать оригинальное описание (EN)
Mealie's AsyncSafeTransport SSRF guard (mealie/pkgs/safehttp/transport.py) resolves a target hostname once, checks the resolved IP against private-range rules, but then issues the actual outbound HTTP request using the original hostname, which the underlying async transport re-resolves independently.
Характеристики атаки
Последствия
Строка CVSS v3.1