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

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

РЖД удалось отменить штраф за утечку персональных данных после атаки

Девятый арбитражный апелляционный суд отменил решение нижестоящей инстанции о штрафе в отношении РЖД по делу об утечке персональных данных. Ранее Арбитражный суд Москвы признал железнодорожного оператора виновным и назначил штраф, однако компания обжаловала это решение.

Заседание апелляционной инстанции состоялось 12 января, а полный текст решения был опубликован 16 февраля.

Инцидент с утечкой произошёл в начале 2025 года. В ходе мониторинга сети Роскомнадзор обнаружил массив данных объёмом около 17 млн строк, содержащий персональные данные сотрудников РЖД. Эти сведения были размещены в публичном телеграм-канале одной из проукраинских хакерских группировок.

Регулятор уведомил компанию о факте утечки. В ходе расследования было установлено, что имел место взлом информационных систем РЖД. Компания сообщила об инциденте в НКЦКИ и правоохранительные органы, которые возбудили уголовное дело; расследование продолжается.

С 26 июня по 9 июля 2025 года Роскомнадзор провёл плановую проверку РЖД. По её итогам ведомство обратилось в Арбитражный суд Москвы, который оштрафовал компанию на 150 тыс. рублей по ч. 1 ст. 13.11 КоАП РФ.

РЖД не согласилась с выводами суда и подала апелляцию. Девятый арбитражный апелляционный суд отменил решение первой инстанции, указав: «Суд апелляционной инстанции считает, что выводы административного органа о наличии единоличной вины ОАО „Российские железные дороги“ в нарушении законодательства Российской Федерации в области персональных данных являются преждевременными».

«Суд не оправдал утечку. Он просто напомнил, что в России пока нет модели строгой ответственности „утекло — значит виноват“ (хотя Роскомнадзор её и пытается навязать своими действиями). Чтобы оштрафовать, нужно доказать вину. А РЖД доказывало не позицию „мы не виноваты“ (как в случае с Минтруда), а „мы приняли все разумные меры“», — прокомментировал решение суда Алексей Лукаций.

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