Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

Найдена уязвимость удаленного выполнения кода в CouchDB

В CouchDB была обнаружена уязвимость, вызванная несоответствием между собственным парсером JSON и JSON-парсером Javascript, используемым во время проверки документа. Поскольку базы данных CouchDB открыты для доступа через интернет, эта брешь может поспособствовать эскалации привилегий и удаленному выполнению кода на большом количестве установок.

CouchDB написана на языке Erlang, но позволяет указывать сценарии проверки документов в Javascript. Эти сценарии автоматически оцениваются при создании или обновлении документа. CouchDB управляет учетными записями пользователей через специальную базу данных — _users.

Когда вы создаете или изменяете пользователя в базе данных CouchDB, сервер проверяет изменение с помощью функции Javascript validate_doc_update, чтобы удостовериться, что это не попытка сделать себя администратором, например.

«Проблема в том, что существует расхождение между JSON-парсером Javascript (используемым в скриптах проверки) и тем, что используется внутри CouchDB, называемым jiffy», — пишет эксперт, обнаруживший брешь.

Далее специалист привод куски кода для демонстрации этой разницы:

Erlang:

> jiffy:decode("{\"foo\":\"bar\", \"foo\":\"baz\"}"). 
{[{<<"foo">>,<<"bar">>},{<<"foo">>,<<"baz">>}]}

Javascript:

> JSON.parse("{\"foo\":\"bar\", \"foo\": \"baz\"}")
{foo: "baz"}

Для данного ключа парсер Erlang сохранит оба значения, а вот Javascript-парсер сохранит только последнее, что позволит обойти все соответствующие проверки ввода и создать пользователя с правами администратора.

Исследователь указывает на то, что использовать несколько парсеров для обработки одних и тех же данных не очень правильно. Он предлагает сделать все возможное, чтобы не было никаких функциональных различий между парсерами, если есть необходимость использовать несколько.

iMazing снова позволяет устанавливать удалённые приложения на iPhone

Разработчики iMazing выпустили версию 3.6.3, которая возвращает возможность загружать на iPhone приложения, ранее удалённые из App Store. Пока обход новых ограничений Apple работает только через macOS, владельцам Windows придётся ещё немного посидеть у закрытой двери.

Обновление исправляет ошибки авторизации и загрузки приложений в macOS 26 и более ранних версиях системы. После установки патча разработчики рекомендуют обязательно перезагрузить компьютер.

Поддержка macOS 27 Golden Gate и Windows пока не восстановлена. В iMazing признали, что эти платформы требуют дополнительной работы, поэтому соответствующие исправления, вероятно, появятся позже.

Проблемы начались после изменений на стороне Apple. iMazing, ipa_downloader, 3uTools и другие сторонние инструменты перестали получать установочные файлы из пользовательской медиатеки App Store: серверы отвечали ошибкой HTTP 403 Forbidden.

По данным участников проекта ipatool, Apple начала отклонять как новые, так и устаревшие способы аутентификации CommerceKit. Предположительно, компания изменила механизм получения криптографических ключей, деактивировала старые токены и отозвала часть сертификатов.

Из-за этого не всегда помогали даже заранее сохранённые IPA-файлы: для переноса приложения на другой iPhone всё равно требовалась действующая цифровая подпись.

Особенно болезненно ограничение ударило по российским пользователям, которые с помощью iMazing возвращали банковские и другие приложения, удалённые из App Store.

RSS: Новости на портале Anti-Malware.ru