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

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

iOS 27 вводит режим восстановления прямо на iPhone

Apple решила сделать iPhone и iPad менее зависимыми от компьютеров. В iOS 27 и iPadOS 27 появилась новая система восстановления устройства, которая позволит решать часть серьёзных проблем прямо на самом смартфоне или планшете. Речь идёт о полноценном Recovery Mode — аналоге режима восстановления, который уже давно существует на macOS-компьютерах.

Работает это так: если iPhone выключен, пользователю достаточно включить его и продолжать удерживать кнопку питания даже после появления логотипа Apple.

Через некоторое время на экране появится индикатор загрузки, а затем откроется специальное меню восстановления.

Внутри доступны сразу несколько полезных инструментов. Пользователь сможет установить обновление системы, запустить диагностику устройства, полностью стереть данные, воспользоваться помощником Recovery Assistant или выполнить другие операции по восстановлению.

Источник: 9to5Mac

 

Любопытно, что новый режим показывает текущий уровень заряда батареи и автоматически подключается к сохранённым сетям Wi-Fi. Отсюда же можно попытаться загрузить устройство в обычном режиме.

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

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

С выходом iOS 27 часть таких проблем можно будет решить прямо на устройстве. В некоторых случаях Recovery Assistant даже позволит переустановить последнюю стабильную версию операционной системы без использования компьютера.

Конечно, большинству владельцев iPhone этот режим может никогда не понадобиться, но если смартфон внезапно превратится в дорогой кирпич после очередного обновления, шансов вернуть его к жизни станет больше.

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