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

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

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

Boeing 737 MAX может потерять автопилот в самый неудобный момент

У Boeing снова проблемы с программным обеспечением 737 MAX. Компания обнаружила сбой, способный отключить функцию автоматической навигации в один из самых неподходящих моментов — при заходе самолёта на посадку.

Как сообщает The Wall Street Journal, проблема появилась после обновления ПО в кабине пилотов. Ошибка может проявиться, если после ухода на второй круг экипаж изменит запланированный маршрут.

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

Boeing уведомила авиакомпании о проблеме ещё в конце августа, но заявила, что угрозы безопасности она не представляет. Сейчас компания готовит временную процедуру, позволяющую повторно активировать автоматическую навигацию, и разрабатывает обновление ПО. Дополнительные рекомендации обещают выпустить к ноябрю, а окончательное исправление — только в начале 2028 года.

Такой график понравился не всем. Southwest Airlines и United Airlines, по данным издания, не захотели принимать новые 737 MAX с проблемной версией ПО и запросили установку предыдущей. Федеральное управление гражданской авиации США уже изучает ситуацию и обещает принять меры при необходимости.

Сбой может затронуть и планы по новым моделям MAX 7 и MAX 10. Последнюю уже заказали Delta, United, American и Alaska, однако результаты проверки FAA способны повлиять на её сертификацию.

Сейчас в мире эксплуатируются 2422 самолёта Boeing 737 MAX 8 и 9. А сама линейка всё никак не может сбросить шлейф проблем: после двух катастроф её полёты приостанавливали почти на два года. Теперь к репутационному багажу добавилось ещё одно обновление, которое лучше было не устанавливать.

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