Уязвимость «Неподходящее кодирование выходного контекста» в joshnuss xml_builder (модуль XmlBuilder) делает возможным подмену контента и выполнение межсайтовых сценариев. Эта уязвимость связана с программными файлами lib/xml_builder.ex и программными подпрограммами XmlBuilder.generate/1, XmlBuilder.generate/2, XmlBuilder.escape_string/1, XmlBuilder.escape_entity/1.
XmlBuilder.generate/1 не экранирует литерал & символы в тексте или значениях атрибутов, если за ними следует токен, подобный сущности (lt;, gt;, amp;, quot;, apos;). В результате вводимые злоумышленником данные, такие как <script> передается дословно в сериализованный XML, а не экранируется в &lt;script&gt;.
Когда нижестоящий синтаксический анализатор XML позже читает документ, он декодирует последовательности сущностей в литеральные символы <script>, преобразуя инертный на вид текст в реальную разметку. Это позволяет злоумышленнику обходить восходящие фильтры, которые блокируют необработанные символы < и >, внедряя разметку в любого нижестоящего потребителя, который анализирует созданный XML и отображает текстовое содержимое в контексте, чувствительном к разметке (каналы HTML, SVG, RSS/Atom). Это затрагивает как текст элемента, так и значения атрибутов.
Эта проблема затрагивает xml_builder: с 0.0.6 до 2.4.1.
Показать оригинальное описание (EN)
Inappropriate Encoding for Output Context vulnerability in joshnuss xml_builder (XmlBuilder module) allows Content Spoofing, Cross-site Scripting. This vulnerability is associated with program files lib/xml_builder.ex and program routines XmlBuilder.generate/1, XmlBuilder.generate/2, XmlBuilder.escape_string/1, XmlBuilder.escape_entity/1. XmlBuilder.generate/1 does not escape literal & characters in text or attribute values when they are followed by an entity-like token (lt;, gt;, amp;, quot;, apos;). As a result, attacker-supplied input such as <script> is emitted verbatim into the serialized XML rather than being escaped to &lt;script&gt;. When a downstream XML parser later reads the document, it decodes the entity sequences into the literal characters <script>, promoting inert-looking text into real markup. This allows an attacker to bypass upstream filters that block raw < and > characters, injecting markup into any downstream consumer that parses the produced XML and renders the text content in a markup-sensitive context (HTML, SVG, RSS/Atom feeds). Both element text and attribute values are affected. This issue affects xml_builder: from 0.0.6 before 2.4.1.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Joshnuss Xml_Builder
cpe:2.3:a:joshnuss:xml_builder:*:*:*:*:*:*:*:*
|
0.0.6
|
2.4.1
|