CVE-2023-49103

ownCloud ownCloud graphapi

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2023-11-30

Официальное описание

ownCloud graphapi contains an information disclosure vulnerability that can reveal sensitive data stored in phpinfo() via GetPhpInfo.php, including administrative credentials.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость CVE-2023-49103 (CVSS 10.0) заключается в раскрытии конфиденциальной информации через компонент graphapi в ownCloud. Библиотека содержит файл GetPhpInfo.php, который при обращении к нему выводит результаты функции phpinfo().

В контексте контейнеризированных сред (Docker) это приводит к утечке всех переменных окружения, которые могут включать: * Пароли администратора ownCloud. * Учетные данные базы данных. * Ключи доступа к объектным хранилищам (S3 Access Keys). * Лицензионные ключи и секреты почтовых серверов.

Уязвимость критична, так как не требует аутентификации для эксплуатации.

Как исправить

Основным способом устранения является удаление уязвимого файла и обновление приложения graphapi до версии 0.3.1 или выше.

  1. Перейдите в директорию с установленным ownCloud (путь может отличаться в зависимости от вашей инсталляции):
cd /var/www/owncloud/apps/graphapi

  1. Удалите файл GetPhpInfo.php:
rm vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php

  1. Обновите приложение graphapi через интерфейс администратора или с помощью утилиты occ:
sudo -u www-data php occ market:upgrade graphapi

  1. Измените все секреты, которые могли быть скомпрометированы (пароль администратора, пароль БД, S3 ключи).

Временные меры

Если немедленное обновление невозможно, примените следующие меры для блокировки доступа к файлу.

Вариант 1: Блокировка через конфигурацию Apache (.htaccess) Добавьте следующие строки в конфигурационный файл:

<Files "GetPhpInfo.php">
    Order allow,deny
    Deny from all
</Files>

Вариант 2: Блокировка через Nginx Добавьте блок location в конфигурацию сервера:

location ~* GetPhpInfo.php {
    deny all;
    return 404;
}

Вариант 3: Отключение функции phpinfo в php.ini Добавьте функцию в список запрещенных:

disable_functions = phpinfo

Вариант 4: Для Docker-инсталляций Перезапустите контейнеры, предварительно удалив файл через volume или пересобрав образ без указанного файла. Обязательно смените переменные окружения в docker-compose.yml.