Версии до 2.6.6 уязвимы для загрязнения прототипами с помощью созданных струн с отсутствующего ключа при использовании для сохранения недос…
Версии до 2.6.6 уязвимы для загрязнения прототипами с помощью созданных струн с отсутствующего ключа при использовании для сохранения недостающих ключей перевода (например, через i18next-http-middleware's missingKeyHandler, подверженный ненадежному вводу). Backend.writeFile() разделяет каждую очерченную строку отсутствующего ключа на настроенном ключеSeparator (по умолчанию .), прежде чем вызвать внутренний ходок setPath(). Ходячий (getLastOfPath in lib/utils.js) не защищался от небезопасных сегментов, поэтому такой ключ, как "__proto___, polluted", был разделен на ["__proto__", "загрязненный"] и вошел прямо в Object.prototype, позволяя злоумышленнику записывать произвольные свойства на прототип глобального объекта. В зависимости от приложения хоста, загрязненные свойства прототипа могут вызывать сбои, поврежденное поведение перевода, отравление конфигурацией или обходы проверок безопасности на основе имущества. Приложения затрагиваются только в том случае, если пропущенныйKeyHandler (или другой маршрут, который направляет ненадежные органы запроса в i18next.t(..., { }) с saveMissing: true) доступен ненадежными пользователями, и используется поведение по умолчанию при разделении строк отсутствующего ключа на ключеSeparator (т.е. KeySeparator не является ложным). Приложения, которые не подвергают недосторожность ненадежному вводу, напрямую не затрагиваются этим путем атаки. Эта проблема исправлена в версии 2.6.6. Если разработчики, использующие библиотеку, не могут немедленно обновиться, они должны принять следующие меры предосторожности: не подвергать i18next-http-middlelware пропущенныйKeHandler ненадежным пользователям (монтировать его за аутентификацией или удалить маршрут), отключить постоянство отсутствующего ключа (saveMissing: false, or no backend.create реализация) при принятии письменных сообщений с ненадежного ввода и установить ключ.Вложенные ключи перевода).
Продукт получает входные данные от вышестоящего компонента, задающие атрибуты для инициализации или обновления в объекте, однако не обеспечивает надлежащего контроля модификаций атрибутов прототипа объекта.
https://cwe.mitre.org/data/definitions/1321.html →Открыть в коллекции CWE →В приложениях, особенно веб-приложениях, доступ к функциональности ограничивается системой авторизации. Эта система сопоставляет списки контроля доступа (ACL) с элементами функциональности приложения — в частности, с URL-адресами веб-приложений. Если администратор не задал ACL для определённого элемента, злоумышленник может получить к нему доступ безнаказанно. Злоумышленник, способный обращаться к функциональности, не ограниченной ACL должным образом, может получить конфиденциальную информацию и, возможно, скомпрометировать приложение целиком. Такой злоумышленник может обращаться к ресурсам, которые должны быть доступны только пользователям с более высоким уровнем привилегий, получать доступ к административным разделам приложения или выполнять запросы на получение данных, к которым у него не должно быть доступа.
https://capec.mitre.org/data/definitions/1.html →Открыть в коллекции CAPEC →Данная атака направлена на переменные, управляемые пользователем (DEBUG=1, PHP Globals и т. д.). Злоумышленник может переопределять переменные, используя переменные запроса, предоставляемые пользователем и применяемые непосредственно на сервере приложений без какой-либо санитизации данных. В крайних случаях злоумышленник может изменять переменные, управляющие бизнес-логикой приложения. Например, в языках наподобие PHP ряд неудачно заданных конфигураций по умолчанию может позволить пользователю переопределять переменные.
https://capec.mitre.org/data/definitions/77.html →Открыть в коллекции CAPEC →Злоумышленник эксплуатирует слабость в конфигурации средств контроля доступа и способен обойти предусмотренную этими механизмами защиту, получив тем самым несанкционированный доступ к системе или сети. Чувствительная функциональность всегда должна быть защищена средствами контроля доступа. Однако настройка всех, кроме самых простых, систем контроля доступа может быть весьма сложной задачей, при выполнении которой возможны многочисленные ошибки. Если злоумышленник способен обнаружить некорректно настроенные параметры безопасности доступа, он может эксплуатировать их в атаке.
https://capec.mitre.org/data/definitions/180.html →Открыть в коллекции CAPEC →