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

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

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

Бесперебойники дёргают электросети раз в минуту, учёные нашли причину

Энергосети по всему миру годами дёргаются ровно раз в минуту, частота тока ненадолго проседает и возвращается к норме. Команда исследователей из Германии нашла одного из виновников — аккумуляторные системы бесперебойного питания.

Как объясняют авторы исследования в Nature Energy, управляющий софт может запускать проверки батарей по синхронизированным часам.

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


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

При детальном изучении одной установки учёные зафиксировали скачок потребления в начале каждой минуты.


Пока эти колебания не считаются критической угрозой устойчивости электросетей. Но бесследно они тоже не проходят, ибо турбины ГЭС вынуждены слегка замедляться и снова разгоняться, что увеличивает износ. В Ирландии амплитуда минутного сигнала с 2016 по 2021 год выросла вчетверо.


Решением здесь может стать распределение проверки по времени со случайным сдвигом.

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