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

Схема была простая: мужчина покупает микронаушник, а собеседник диктует ему правильные ответы во время экзамена. Поначалу всё даже сработало: экзамен фигурант успешно сдал.

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

На место вызвали оперативно-следственную группу. Полицейские изъяли гарнитуру и мобильный телефон, а самого изобретательного экзаменуемого сопроводили в больницу. Там врач достал микронаушник из уха.

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

Суд в Чувашии назначил ему штраф в 50 тысяч рублей. Так что права он, возможно, и хотел получить быстрее, но в итоге получил куда более дорогой урок: не всякая помощь на экзамене заканчивается водительским удостоверением.

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