The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +/
Сообщение от opennews on 16-Ноя-17, 00:43 
Опубликованы (http://seclists.org/oss-sec/2017/q4/279) сведения о двух уязвимостях, устранённых в недавно опубликованных выпусках  документ-ориентированной СУБД Apache CouchDB 2.1.1 и 1.7.1 (http://couchdb.apache.org/). В своей комбинации уязвимости позволяют провести атаку по удалённому выполнению произвольных shell-команд на сервере с правами процесса CouchDB, имея доступ к БД.


Проблему усугубляет то, что по недосмотру или задумке администраторов многие БД под управлением CouchDB не защищены и открыты для доступа без аутентификации, чем уже пользуются (https://www.opennet.ru/opennews/art.shtml?num=45903)  вредоносные программы-шифровальщики. Уязвимости позволяют не только получить контроль над данными, но и продолжить атаку для получения контроля за всем сервером. Так как CouchDB применяется в реестре NPM для упрощение репликации данных на системы пользователей, уязвимости могли использоваться (https://justi.cz/security/2017/11/14/couchdb-rce-npm.html) для изменения произвольных пакетов в реестре NPM (https://registry.npmjs.org/), с которого еженедельно загружается более трёх миллиардов пакетов.


Первая уязвимость (CVE-2017-12635 (https://security-tracker.debian.org/tracker/CVE-2017-12635)) проявляется из-за различий в работе используемых в CouchDB двух парсеров JSON, написанных на Erlang и JavaScript. Парсер на Erlang допускает добавление записи в БД "_users" с повторяющимися ключами, используемыми при определении прав доступа. В том числе можно добавить дубликат записи с меткой "_admin", через которую определяются пользователи с правами администратора. При наличии дубликатов ключей парсер на Erlang выдаёт первое совпадение, а JavaScript последнее.


Например, для добавления пользователя с правами администратора можно выполнить:

   curl -X PUT 'http://localhost:5984/_users/org.couchdb.user:oops'
   --data-binary '{
     "type": "user",
     "name": "oops",
     "roles": ["_admin"],
     "roles": [],
     "password": "password"
   }'


В процессе обработки данного запроса, содержащего два ключа "roles", реализация на Erlang обработает права "_admin", а реализация на JavaScript выдаст пустую строку. Подобное поведение приводит к тому, что при наличии в JSON двух повторяющихся ключей "roles", второй ключ будет использован при авторизации операций записи документа, а первый при авторизации только что созданного нового пользователя. Архитектура CouchDB не позволяет пользователям назначать себе права доступа, но из-за выявленной уязвимости обычный пользователь может назначить себе привилегии администратора.


Вторая уязвимость (CVE-2017-12636 (https://security-tracker.debian.org/tracker/CVE-2017-12636)) присутствует в средствах настройки CouchDB через HTTP(S) и позволяет изменить путь к некоторым исполняемым файлам, вызываемым в процессе работы СУБД (параметр query_server). Пользователь с правами администратора (данные права можно получить при помощи первой уязвимости) может через манипуляцию с данными настройками вызвать любые shell-комманды в окружении операционной системы сервера, с правами под которыми выполняется СУБД. В том числе можно инициировать загрузку из глобальной сети произвольного скрипта и его выполнение на сервере.


URL: http://seclists.org/oss-sec/2017/q4/279
Новость: http://www.opennet.ru/opennews/art.shtml?num=47574

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


3. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +2 +/
Сообщение от Аноним (??) on 16-Ноя-17, 00:44 
Сейчас должен прибежать тот, который "javascript не нужен вспомнити npm left pad"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +1 +/
Сообщение от нах on 16-Ноя-17, 00:53 
дрыхнет, небось, зараза. Ну ничего, вспомим leftpad без него.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

16. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  –1 +/
Сообщение от Аноним (??) on 16-Ноя-17, 09:24 
Зачем? Мы это и так знаем.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

17. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +2 +/
Сообщение от Аноним (??) on 16-Ноя-17, 13:48 
javascript не нужен, вспомните npm left pad!
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  –2 +/
Сообщение от Аноним (??) on 16-Ноя-17, 01:08 
> При наличии дубликатов ключей парсер на Erlang выдаёт первое совпадение

"If there is more than one entry in a list for a certain key, the first occurrence normally overrides any later" - прочитать и подумать, видать, не судьба была.
Вот хороший пример того, что и на эрланге лажануть можно.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +1 +/
Сообщение от Аноним (??) on 16-Ноя-17, 01:58 
> Вот хороший пример того, что и на эрланге лажануть можно

... если ты яваскриптер.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +3 +/
Сообщение от Led (ok) on 16-Ноя-17, 03:37 
Ага. И поэтому "реализация на JavaScript выдаст пустую строку". Наверное потому, что жавоскритокодеры понимаю "first occurrence" как "последнее вхождение".
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +/
Сообщение от Аноним (??) on 16-Ноя-17, 02:00 
CouchDB уже несколько лет не используется в npm. Они просто поддерживают старое апи для совместимости. В блоге автора npm на медиуме описана текущая архитектура проекта.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +/
Сообщение от Вы забыли заполнить поле Name on 16-Ноя-17, 03:19 
http://blog.npmjs.org/post/75707294465/new-npm-registry-arch...
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

23. "Уязвимость в Apache CouchDB, позволяющая совершить атаку на ..."  +/
Сообщение от Аноним (??) on 28-Ноя-17, 20:07 
Спасибо, будем обновляться.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру