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

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

MAXимальная потеря: власти Новороссийска не смогли вернуть свой канал

Администрация Новороссийска сообщила о потере своего канала в мессенджере МАКС. По версии чиновников, ресурс взломали 15 июля, причём восстановить его уже невозможно. Подписчиков оперативно позвали в новый канал — старый, судя по формулировке властей, отправился в цифровую бездну окончательно.

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

В комментариях пользователи иронизируют: раньше взламывали Telegram, теперь добрались и до МАКС.

Впрочем, версия со взломом оказалась не единственной. Краснодарский аналитик Андрей Гусий написал, что канал мог просто закрыться ночью без предупреждений, уведомлений и понятной причины. При этом, по его словам, опубликованный там контент едва ли нарушал законодательство.

Почему ресурс невозможно вернуть, тоже не объясняется. Гусий обратил внимание на странную конструкцию: отечественный мессенджер, отечественная администрация, а восстановить канал всё равно нельзя.

Пока власти не раскрыли ни подробностей атаки, ни данных о возможных злоумышленниках. Неизвестно также, получили ли посторонние доступ к переписке или публикациям.

В сухом остатке у Новороссийска теперь новый официальный канал, а у МАКС — крайне неудобный вопрос к надёжности. Потому что фраза «взломан без возможности восстановления» для административного ресурса звучит не как реклама цифрового суверенитета, а как его внезапный стресс-тест.

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