Злоумышленники использовали уязвимость в необязательном приложении Nextcloud, Collabora Online – Built-in CODE Server, для внедрения веб-оболочек на серверы Nextcloud. Три администратора сообщили о проблеме на GitHub, первый зафиксированный случай атаки произошел 10 сентября.
Веб-оболочка — это небольшой файл, который выполняет любую команду, отправленную злоумышленником через веб-запрос, с правами учетной записи веб-сервера. Уязвимость позволяла неаутентифицированному запросу выполнить команду на сервере, но только когда локальный сервер документов приложения не был запущен, например, во время перезапуска или обновления, или после сбоя.
Collabora исправила проблему в версии 26.4.303 11 сентября и 14 октября опубликовала предупреждение с идентификатором CVE-2026-110447, предупреждая, что отключение приложения не помогает: его необходимо обновить или удалить.
Приложение, опубликованное Collabora под именем пакета richdocumentscode, загружает копию Collabora Online Development Edition (CODE) и запускает ее на самом сервере Nextcloud.
Это позволяет Nextcloud Office редактировать документы без отдельного сервера Collabora. В описании в магазине указано, что оно предназначено «для локального тестирования и непроизводственного использования» и «для личного использования или небольших команд».
Предупреждение Collabora охватывает все версии до 26.4.303 и указывает, что автономные серверы Collabora Online не затронуты. Предупреждение, опубликованное на форуме сообщества Nextcloud 3 октября, гласило, что установка не затронута, если используется только приложение Nextcloud Office (richdocuments) без встроенного приложения, независимо от того, работает ли сервер Collabora в Docker, из пакета Linux или у хостинг-провайдера.
Скрипт proxy.php приложения запускает локальный сервер CODE при каждом входящем запросе, когда ничего не прослушивается. В версиях до 26.4.302 скрипт помещал текст из запроса, включая его путь, в команду bash в двойных кавычках, где оболочка все еще выполняла все, что написано в формате $(…).
Запрос с командой, скрытой в пути, выполнял эту команду от имени пользователя веб-сервера. Поскольку скрипт формирует эту команду только при необходимости запуска сервера, атака работает только тогда, когда сервер неактивен, например, во время перезапуска контейнера, обновления или сбоя.
Скрипт представляет собой обычный PHP-файл, который веб-сервер запускает напрямую из папки приложения и не загружает никакого кода Nextcloud.
«Недостаточно отключить приложение, чтобы избежать проблемы; его необходимо обновить до версии >= 26.4.303 или удалить», — говорится в предупреждении Collabora.
Исправленные версии требуют Nextcloud 30 или новее.
Nextcloud 29 и более старые версии больше не поддерживаются, а магазин приложений по-прежнему предлагает им затронутую версию, поэтому их пользователи должны обновить Nextcloud или удалить приложение. Исправление Collabora для отдельной уязвимости внедрения команд в том же скрипте, CVE-2025-66208, раскрытое в декабре прошлого года, не предотвращает эту.
Первый отчет поступил от администратора, который обслуживает несколько серверов Nextcloud и написал на GitHub, что серверы были взломаны накануне. Журналы доступа с двух из них показывают запросы в 19:51 10 сентября и 09:56 11 сентября (UTC+2), оба с одного IP-адреса и оба направленные на proxy.php?status с командой оболочки, скрытой в пути запроса. Все серверы администратора работали под управлением версии 26.4.302.
Команда декодировала однострочную PHP-веб-оболочку в папку приложения и попыталась отправить вывод команды сервера uname -a на адрес webhook.site. На одном сервере злоумышленник затем использовал оболочку для поиска хранилищ учетных данных и криптовалютных кошельков, включая файлы *.kdbx, wallet.dat и keystore.json, а также имена, такие как bitwarden, 1password, .bitcoin, .electrum, .monero и .ethereum.
Просмотренные запросы не содержали команд для архивирования, загрузки или копирования файлов, но все, что может прочитать учетная запись веб-сервера, должно рассматриваться как потенциально раскрытое, написал администратор.
Два других администратора сообщили о том же на своих собственных экземплярах. Один обнаружил оболочку, когда проверка целостности Nextcloud отметила новый PHP-файл, а другой узнал о взломе из электронных писем о неудачных попытках sudo на сервере. Ни один из отчетов не показывает, что злоумышленнику удалось получить root-доступ.
После обновления до версии 26.4.303 один из них зафиксировал еще одну попытку 14 сентября со второго IP-адреса с полезной нагрузкой того же типа. Запущенный им сервер CODE содержал текст атаки в своих параметрах запуска, но новый файл оболочки не появился. Ответ «выглядит страшно, но должен быть безвредным», — написал mmeeks, который отвечал за проект в ветке, посоветовав пользователям обновиться и удалить любые оставшиеся файлы shx*.php.
Запись CVE описывает уязвимость как «использованную в реальных атаках в сентябре и октябре 2026 года». Сколько серверов было затронуто, неизвестно. «Это затрагивает только Development Edition и только в этом (довольно редком) режиме развертывания Built-in CODE Server, который загружает локальный appimage», — написал mmeeks.
Что делать, по порядку:
Индикаторы из журналов администраторов:
Изменение кода, устранившее уязвимость, состоит из четырех строк в файле proxy.php. Команда запуска теперь передается bash как один экранированный аргумент вместо строки в двойных кавычках, поэтому оболочка, получающая ее, больше не разворачивает текст из запроса.
Запись коммита в репозитории показывает, что изменение было написано 20 августа Caolán McNamara, который также опубликовал предупреждение, под заголовком «привести в порядок способ сборки команды запуска coolwsd». Оно отсутствовало в версии 26.4.302, выпущенной 31 августа, и было закоммичено 9 сентября. Первая зафиксированная атака произошла 10 сентября, а версия 26.4.303 последовала 11 сентября с примечаниями к выпуску, в которых упоминалось только сборка CODE.
Администратор, сообщивший об атаках, отключил приложение в ожидании исправления — шаг, который, как теперь гласит предупреждение, недостаточен. В ветке mmeeks посоветовал пользователям обновиться, пообещал «дальнейшие обновления в свое время» и указал на «рекордный бэклог» в базе данных предупреждений GitHub, ссылаясь на июньский пост, в котором GitHub заявил, что его обработка отстает на недели.
3 октября участник форума сообщества Nextcloud предупредил других пользователей о необходимости немедленного обновления, поскольку уязвимость «уже эксплуатировалась», а «предупреждение или CVE не были опубликованы». CVE и предупреждение появились 14 октября. В предупреждении в качестве сообщившего указан пользователь GitHub wwwshellcodeit, и ни в нем, ни в ветке не указано, когда поступил отчет или когда Collabora узнала, что изменение является исправлением безопасности.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




