Quasar Framework — это платформа для создания высокопроизводительных пользовательских интерфейсов Vue.js. До версии 2.22.0 общедоступная утилита расширения() в ui/src/utils/extend/extend.js рекурсивно копировала ключи объекта, контролируемого злоумышленником, во время глубокого слияния расширения (true, target, source), не отвергая собственное свойство __proto__. Слияние может перейти в объект-прототип и записать свойства, контролируемые злоумышленником, в Object.prototype в том же процессе JavaScript.
Приложения, которые передавали объекты, контролируемые или частично контролируемые пользователем, в методе Extend(), могли столкнуться с логическим обходом, небезопасным внедрением параметров по умолчанию, отказом в обслуживании или другими последствиями, специфичными для приложения, когда загрязненные свойства были позже использованы. Эта проблема исправлена в версии 2.22.0.
Показать оригинальное описание (EN)
Quasar Framework is a framework for building high-performance Vue.js user interfaces. Prior to 2.22.0, the public extend() utility in ui/src/utils/extend/extend.js recursively copied attacker-controlled object keys during extend(true, target, source) deep merges without rejecting an own __proto__ property. The merge could descend into the prototype object and write attacker-controlled properties to Object.prototype in the same JavaScript process. Applications that passed user-controlled or partially user-controlled objects to extend() could experience logic bypass, unsafe default-option injection, denial of service, or other application-specific impact when polluted properties were later consumed. This issue is fixed in version 2.22.0.
Характеристики атаки
Последствия
Строка CVSS v3.1