Mermaid — это инструмент JavaScript, который использует текст в стиле Markdown для создания и изменения диаграмм и диаграмм. До версий 10.9.8 и 11.16.1 установщики конфигурации Mermaid (mermaid.initialize, mermaidAPI.setConfig и mermaidAPI.updateSiteConfig) объединяют конфигурацию, предоставленную вызывающей стороной, с внутренней конфигурацией Mermaid с помощью помощника глубокого слияния AssignWithDepth, который уязвим к загрязнению прототипа. Это можно использовать только в том случае, если приложение пересылает ненадежные данные непосредственно в одну из этих точек входа конфигурации, что находится за пределами их документированного использования; Конфигурация, предоставленная диаграммой (например, %%{init: {}}%% или заголовок YAML), не затрагивается.
Эта проблема исправлена в версиях 10.9.8 и 11.16.1.
Показать оригинальное описание (EN)
Mermaid is a JavaScript tool that uses Markdown-inspired text to create and modify diagrams and charts. Prior to 10.9.8 and 11.16.1, Mermaid's configuration setters (mermaid.initialize, mermaidAPI.setConfig, and mermaidAPI.updateSiteConfig) merge caller-supplied configuration into Mermaid's internal config using the assignWithDepth deep-merge helper, which is vulnerable to prototype pollution. This is only exploitable if an application forwards untrusted data directly into one of these configuration entry points, which is outside their documented usage; diagram-supplied configuration (e.g. %%{init: {}}%% or YAML frontmatter) is not affected. This issue is fixed in versions 10.9.8 and 11.16.1.
Характеристики атаки
Последствия
Строка CVSS v4.0