Gotenberg — это API без сохранения состояния для файлов PDF на базе Docker. В версии 8.32.0 и более ранних версиях функция IsPublicIP в pkg/gotenberg/outbound.go не отклоняет префикс 2002::/16 6to4, префиксы 64:ff9b::/96 и 64:ff9b:1::/48 NAT64, устаревший префикс локального сайта fec0::/10, Teredo и другие префиксы перехода, которые можно встраивать или маршрутизировать к закрытым местам назначения IPv4. Операция addr.Unmap обрабатывает только адреса IPv6, сопоставленные с IPv4, поэтому созданная DNS-запись AAAA может привести к тому, что исходящий HTTP-клиент будет рассматривать адрес, обертывающий внутреннее назначение, например 169.254.169.254, как общедоступный.
Злоумышленник, не прошедший проверку подлинности, может использовать маршрут преобразования с включенными параметрами WithDenyPrivateIP для доступа к облачным службам метаданных, а маршрут преобразования URL-адресов Chromium может вернуть внутренний ответ в виде PDF-файла, потенциально раскрывая облачные учетные данные. Для эксплуатации требуется развертывание, хост которого маршрутизирует соответствующий префикс IPv6, например среда с двойным стеком или средой с поддержкой NAT64. Эта проблема исправлена в версии 8.33.0.
Показать оригинальное описание (EN)
Gotenberg is a Docker-powered stateless API for PDF files. In 8.32.0 and earlier, the IsPublicIP function in pkg/gotenberg/outbound.go does not reject the 2002::/16 6to4 prefix, the 64:ff9b::/96 and 64:ff9b:1::/48 NAT64 prefixes, the fec0::/10 deprecated site-local prefix, Teredo, and other transition prefixes that can embed or route to non-public IPv4 destinations. The addr.Unmap operation only handles IPv4-mapped IPv6 addresses, so a crafted DNS AAAA record can cause the outbound HTTP client to treat an address wrapping an internal destination such as 169.254.169.254 as public. An unauthenticated attacker can use a conversion route with WithDenyPrivateIPs enabled to reach cloud metadata services, and the Chromium URL conversion route can return the internal response as a PDF, potentially exposing cloud credentials. Exploitation requires a deployment whose host routes the relevant IPv6 prefix, such as a dual-stack or NAT64-enabled environment. This issue is fixed in version 8.33.0.
Характеристики атаки
Последствия
Строка CVSS v3.1