CVE-2025-8110

Gogs Gogs

Critical Alert

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

2026-01-12

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

Gogs contains a path traversal vulnerability affecting improper Symbolic link handling in the PutContents API that could allow for code execution.

🤖
AI Security Analysis & Fix

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

Злоумышленник может отправить специально сформированный запрос к API PutContents, который использует небезопасную обработку символических ссылок (symlink). Это позволяет выйти за пределы целевого каталога (Path Traversal) и записать произвольные файлы в файловую систему сервера. В результате возможна запись вредоносного кода (например, веб-шелла) и его последующее выполнение.

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

Уязвимость устранена в релизах Gogs. Необходимо обновить установку до исправленной версии.

  1. Определите текущую версию Gogs: bash # Если Gogs запущен как служба sudo systemctl status gogs # Или проверьте файл VERSION в каталоге установки Gogs cat /path/to/gogs/VERSION

  2. Обновите Gogs до исправленной версии:

    • Версия 0.14.0 и выше: Обновитесь до версии 0.14.2 или новее.
    • Версии 0.13.0 и ниже: Сначала обновитесь до актуальной ветки 0.14.x, затем до 0.14.2+.

    Способ обновления (пример для Linux): ```bash

    1. Остановите службу Gogs

    sudo systemctl stop gogs

    2. Создайте резервную копию текущей установки и базы данных

    sudo cp -r /path/to/gogs /path/to/gogs_backup_$(date +%Y%m%d)

    (Выполните дамп вашей БД, например, для MySQL/PostgreSQL)

    3. Скачайте и распакуйте исправленную версию (замените ссылку на актуальную)

    wget https://github.com/gogs/gogs/releases/download/v0.14.2/linux_amd64.tar.gz tar -xzf linux_amd64.tar.gz -C /tmp/

    4. Скопируйте новые файлы, сохранив конфигурацию и данные

    sudo cp -r /tmp/gogs/* /path/to/your/gogs/installation/

    5. Запустите службу Gogs

    sudo systemctl start gogs ``` Важно: Всегда проверяйте официальные релизы Gogs на наличие самой последней исправленной версии.

🛡️ Временное решение

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

  1. Ограничьте сетевой доступ:

    • Настройте межсетевой экран (firewall) так, чтобы доступ к веб-интерфейсу и API Gogs (порт по умолчанию 3000) был только с доверенных IP-адресов (например, корпоративной сети). ```bash

    Пример для UFW: разрешить только с внутренней сети 192.168.1.0/24

    sudo ufw allow from 192.168.1.0/24 to any port 3000 sudo ufw deny 3000 ```

  2. Настройте обратный прокси (например, nginx) с WAF:

    • Разместите Gogs за веб-сервером nginx и включите модуль ModSecurity с базовыми правилами для блокировки попыток Path Traversal.
    • Добавьте в конфигурацию nginx строгие ограничения на URI. nginx location /api/ { # Базовое ограничение на подозрительные последовательности в URL if ($request_uri ~* "\.\./") { return 403; } proxy_pass http://localhost:3000; }
  3. Усильте контроль доступа к файловой системе:

    • Запускайте процесс Gogs от отдельного непривилегированного пользователя (git или gogs).
    • Убедитесь, что у этого пользователя есть права на запись только в необходимые каталоги (data, logs, custom и репозитории), а доступ к системным директориям (/etc, /root, /home/*) запрещен на уровне прав ОС.