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

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

В своём уведомлении Apple сухо признала проблему: «уведомления, отменынне как удалённые, могли сохраняться на устройстве». Формулировка, конечно, образцовая. Не баг, а просто сообщения решили немного пожить своей жизнью.

Всё это — отголоски истории, о которой мы писали пару недель назад. Тогда стало известно, что ФБР смогло извлечь удалённые сообщения Signal с iPhone с помощью инструментов форензики.

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

То есть пользователь мог включить исчезающие сообщения, рассчитывать на приватность, а iPhone в этот момент бережно сохранял всё в своей базе.

После публикации Signal потребовал от Apple исправить ситуацию. Президент Signal Мередит Уиттакер тогда заявила, что уведомления с удалёнными сообщениями не должны оставаться ни в какой системной базе.

Зачем вообще содержимое таких уведомлений логировалось и хранилось, до конца неясно. Apple на запросы журналистов с объяснениями оперативно не ответила. Зато выпустила патч и даже адаптировала его для устройств с более старой веткой iOS 18.

Проблема вызвала тревогу у защитников приватности не просто так. Исчезающие сообщения в Signal, WhatsApp и других мессенджерах — это не декоративная функция для любителей красивых настроек. Для многих пользователей, особенно из групп риска, это реальный инструмент защиты переписки на случай изъятия устройства.

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