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

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

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

В авиабилеты россиян могут добавить до 1000 рублей на новые самолёты

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

Инициативу прорабатывают Минтранс, Минпромторг и «Ростех», выяснил «Коммерсантъ».

Никаких окончательных решений пока нет: власти ещё не утвердили ни размер платежа, ни методику его взимания. Один из источников называет и более интересные цифры — до 700 рублей внутри страны и до 2000 рублей за зарубежный рейс.

При пассажиропотоке 2025 года сбор мог бы приносить от 68 до 84 млрд рублей ежегодно. В общей сложности за 2027-2030 годы планируется собрать порядка 200-250 млрд рублей.

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

Например, себестоимость первых МС-21 оценивается в 8,9-11 млрд рублей, тогда как Airbus A320–200 — примерно в 3,4-3,6 млрд. SJ-100 может обходиться в 5,4 млрд рублей против около 3 млрд за Embraer E190.

Предполагается, что после 2030 года серийное производство снизит стоимость российских самолётов и сбор станет не нужен. Но пассажирам обещание, что это временно наверняка покажется подозрительно знакомым.

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

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