В Chromium решено удалить поддержку XSLT и прекратить использование libxslt и libxml2

Компания Google приняла решение удалить из браузерного движка Chromium компонентов для поддержки языка преобразования XML-документов XSLT. В качестве причины упоминается желание сократить поверхность атаки через прекращение использования библиотеки libxslt. По мнению Google поддержка XSLT 1.0 создаёт неоправданные риски безопасности так как в библиотеке libxslt периодически выявляют уязвимости (например, CVE-2025–7425 и CVE-2022–22834) и она имеет проблемы с сопровождением (с июня до сентября библиотека оставалась без сопровождения и исправления уязвимостей). Проекты Firefox и WebKit также рассматривают возможность удаления поддержки XSLT.

Уязвимости в XSLT становятся инструментом для совершения атак на браузеры, при том, что в настоящее время клиентская поддержка XSLT невостребована и используется крайне редко, а задачи преобразования данных в HTML могут решаться более безопасно при помощи JavaScript API, таких как DOMParser и Fetch. По статистике Google доля загруженных web-страниц, на которых используется XSLT, составляет 0.02%, а доля страниц, на которых применяются инструкции обработки XSLT, оценена в 0.001%.

Аналогично решено прекратить использование в Chromium библиотеки libxml2, в которой также регулярно находят уязвимости и имеются проблемы с сопровождением. Библиотека libxml2 используется в Chromium для разбора, сериализации и проверки данных в формате XML, а на базе libxslt реализован класс XSLTProcessor и инструкции обработки XSLT (»‹? xml-stylesheet… ? ›»).

Поддержка основанных на libxslt возможностей, таких как API XSLTProcessor и инструкции разбора таблиц стилей XML, будет прекращена в выпуске Chrome 155, намеченном на 17 ноября 2026 года. В Chrome 143, запланированном на 2 декабря 2025 года, в web-консоль будет добавлен вывод предупреждения о переводе API XSLTProcessor в разряд устаревших. В Chrome 148 (весна 2026 года) поддержка XSLT будет отключена по умолчанию в ветках Canary, Dev и Beta. Функциональность для разбора XML будет оставлена, но переведена на новую библиотеку, написанную на языке Rust с оглядкой на обеспечение безопасности.

В качестве замены встроенной в браузер поддержки XSLT предлагается перенести обработку XSLT на сторону сервера и отправлять клиентам уже сформированный HTML-контент. Обработчики, использующие XML API для взаимодействия между клиентом и сервером, предлагается заменить на применение формата JSON и отрисовки через преобразование JSON в HTML/CSS при помощи JavaScript. Из возможных альтернатив также отмечается применение JavaScript-библиотек Saxonica с реализацией XSLT, polyfill-прослойки для обеспечения совместимости со старым кодом, предлагающей замену XSLTProcessor на базе WASM, и браузерного дополнения, автоматически подставляющего polyfill-прослойку в XML документы.



Источник: http://www.opennet.ru/opennews/art.shtml? num=64194

©  OpenNet