@import url(...), он делает внешний запрос, даже если HTML полностью экранирован htmlentities() и даже без <style>.Причина проста: mPDF ищет URL-ы через регулярки по всему входу. Поэтому достаточно вставить:
@import url(https://attacker.com/test?.css)и сервер сразу пойдёт по указанному адресу. Плюс можно использовать и нестандартные протоколы вроде
gopher://, превращая это в SSRF с возможностью дергать внутренние сервисы.Вендор же официально заявил, что это не баг, а фича, и устранять поведение не собирается - по их мнению, движок должен загружать указанные URL, а ответственность за реализацию лежит на разработчиках.
#web #ssrf #pdf



