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

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

Подпишитесь на новости

Apple закрыла лазейку для включения 5G на iPhone в России

Apple устранила AirLift в iOS 27.2 beta 3 — уязвимость, которую энтузиасты использовали для изменения операторских настроек без полноценного джейлбрейка. Через нее на iPhone открывали переключатель 5G и другие недоступные функции связи. Теперь лазейку прикрывают.

О патче сообщил разработчик эксплойта @0xjohnny. По его словам, AirLift пока работает на iOS 27.0, 27.0.1 и первых двух бета-сборках iOS 27.2. Закрытия уязвимости ожидают и в финальной iOS 27.1, но это пока прогноз.

AirLift позволяла сторонним процессам обходить ограничения системной песочницы через AirTraffic — штатный механизм синхронизации данных между iPhone и macOS. На ее основе появилась утилита CarrierSIM для подмены операторских профилей.

С помощью инструмента пользователи открывали настройки 5G, вызовов по Wi-Fi и голосового кодека EVS. Вместо российского профиля устройство получало параметры зарубежного оператора. Однако появление переключателя или значка 5G само по себе еще не гарантирует доступ к сети: он зависит и от инфраструктуры оператора.

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

Напомним, ранее мы сообщали, что 5G на российских iPhone всё-таки включили через уязвимость в iOS.

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