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

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

После обновлений Windows 11 перестали запускаться Блокнот и Ножницы

У пользователей Windows 11 выдалась непростая неделя. На фоне череды проблем, которые принес последние (январские) патчи, всплыл ещё ряд ошибок, теперь уже приводящих к сбою в работе «родных» приложений.

Как сообщает Windows Central, на площадке Reddit и форумах поддержки Microsoft массово жалуются на сбой, из-за которого перестаёт запускаться ряд стандартных программ.

В списке пострадавших — Блокнот, «Ножницы», Alienware Command Center, а также фирменные утилиты для игровых устройств вроде Xbox Ally и Armoury Crate для ROG Ally.

При попытке открыть приложение пользователи видят ошибку 0x803F8001. Система сообщает, что приложение «недоступно для вашей учётной записи» и предлагает проверить вход в Microsoft Account.

На практике это ни к чему не приводит — приложения просто отказываются запускаться, что особенно раздражает, когда под удар попадает тот же Блокнот.

В одной из тем на форуме сотрудник Microsoft пояснил, что такой код ошибки обычно появляется, когда Microsoft Store не может проверить лицензию приложения — например, из-за повреждённого кеша. В теории проблему должны решать стандартные меры вроде сброса кеша магазина или переустановки приложения. Но, как отмечает Windows Central, в реальности это не помогло.

В ходе собственных тестов изданию удалось избавиться от сбоя после установки свежего обновления — KB5074109. Однако гарантировать, что этот способ сработает у всех, пока нельзя.

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

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

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

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