Найдена уязвимость удаленного выполнения кода в 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-парсер сохранит только последнее, что позволит обойти все соответствующие проверки ввода и создать пользователя с правами администратора.

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

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Обнаружен баг в Electron: Signal, Slack и 1Password оказались уязвимы

Исследователи обнаружили опасную уязвимость в популярном фреймворке Electron, на котором работают такие приложения, как Signal, 1Password, Slack и даже Google Chrome. Баг получил идентификатор CVE-2025-55305 и позволяет внедрять вредоносный код в приложения, обходя встроенные проверки целостности.

Как выяснили в Trail of Bits, проблема связана с так называемыми V8 heap snapshots — это механизм оптимизации, унаследованный из Chromium.

Он хранит заранее подготовленное состояние JavaScript, чтобы приложения запускались быстрее. Но именно эти «снимки» оказались за пределами стандартных проверок целостности.

Получается, что если злоумышленник получил доступ к папке установки программы (а на Windows это часто %AppData%\Local, доступный для записи, на macOS — /Applications), он может подменить снапшот-файл. После этого при запуске приложение проглотит вредоносный код ещё до того, как включатся защитные механизмы.

 

Исследователь под псевдонимом Shadow показал, что можно заменить даже встроенные функции, например Array.isArray, и вставить туда выполнение произвольного кода. В тестах Slack просто падал, но для доказательства работоспособности были собраны и полноценные бэкдоры.

  • В Slack внедрили кейлоггер в окна чата.
  • В Signal и 1Password атака позволяла воровать переписку и данные из хранилища.

Хорошая новость: разработчики отреагировали быстро. В 1Password уязвимость закрыли в версии 8.11.8-40, Slack и Signal тоже выпустили обновления.

Однако исследователи предупреждают: уязвимость касается не только Electron-приложений. Похожие техники можно применить к Chromium-браузерам, включая Chrome, если они установлены в папку, куда есть запись у обычного пользователя. И это особенно опасно — ведь такие бэкдоры проходят даже проверку цифровой подписи.

Что делать? Пользователям — обновить Signal, Slack, 1Password и все прочие Electron-программы как можно скорее. Разработчикам — расширить проверки целостности на снапшот-файлы или перенести их в каталоги, недоступные для записи.

Этот случай ещё раз показывает: в защите приложений важно учитывать даже «скрытые» механизмы ускорения работы, иначе они могут стать лазейкой для атак.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

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