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

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

Старое сообщение выбило Telegram из App Store: Дуров обвинил вымогателя

Павел Дуров (внесён в перечень террористов и экстремистов Росфинмониторинга) объяснил временное исчезновение Telegram из App Store атакой вымогателя. По его версии, злоумышленник отредактировал старое сообщение в публичной группе и добавил туда незаконный контент, предварительно изменённый с помощью ИИ.

Трюк позволил спрятать публикацию от участников активного чата: пользователи её практически не видели и не могли пожаловаться модераторам.

Зато сам автор оперативно отправил жалобу Apple. Компания обнаружила материалы с сексуальным насилием над детьми (CSAM) и удалила Telegram из магазина приложений.

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

Telegram и экспериментальный Telegram X пропали из App Store утром 4 августа сразу в нескольких странах, включая Россию, Турцию и США. Примерно через полтора часа приложения вернулись. Всё это время у части пользователей не работали пуш-уведомления на iOS. Версии для macOS и Android инцидент не затронул.

Apple заявила, что восстановила приложения после того, как Telegram удалил запрещённый материал и заблокировал распространившего его пользователя. Дуров, однако, возмутился тем, что корпорация сначала нажала красную кнопку и только потом стала разбираться: перед удалением мессенджера с его администрацией якобы никто не связался.

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

Telegram призвал Apple одинаково строго проверять жалобы на все приложения.

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