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

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

Google вычищает старые расширения Chrome: Manifest V2 исчезнет из Web Store

Google готовится добить старые расширения для Chrome на Manifest V2. С 31 августа 2026 года они должны исчезнуть из Chrome Web Store, а пользователи больше не смогут переустановить их из магазина, даже если раньше уже ими пользовались.

История тянется несколько лет. Google постепенно переводит Chrome на Manifest V3 — новый формат расширений, который компания называет более безопасным, быстрым и экономным по ресурсам.

Но у этого перехода есть болезненный побочный эффект: под раздачу попали старые расширения, включая популярные блокировщики рекламы вроде uBlock Origin.

Ранее Google уже начала отключать Manifest V2-расширения и усложнять их повторное включение. В июле 2025 года такие расширения фактически заблокировали для большинства пользователей, а в июне 2026-го убрали Chrome-флаг, который позволял обходить ограничения.

Последний островок старого мира — Chrome версии 138 и ниже. Там уже установленные Manifest V2-расширения ещё могут оставаться на месте, но без обновлений. Однако если пользователь удалит такое расширение, вернуть его из Chrome Web Store уже не получится. А после полного удаления из магазина шансов станет ещё меньше.

В Chrome 139 и новее поддерживаются только расширения на Manifest V3. То есть обычный путь такой: обновился — попрощался со старым набором дополнений. Теоретически можно возиться с режимом разработчика и локальными пакетами, но для большинства пользователей это уже мини-квест с непредсказуемым финалом.

Самый простой вариант для тех, кому критично нужны старые Manifest V2-расширения, — перейти на браузер, где они ещё поддерживаются. Среди таких вариантов называют Firefox, а также менее массовые браузеры вроде Thorium или Ghost. Но и тут лучше заранее сохранить установочные файлы нужных расширений: когда Google вычистит магазин, искать их потом может быть поздно.

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