Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cakephp-smtp-crlf — CakePHP 5.4.2 - 높음 - 원격 - 헤더 주입 - SmtpTransport 단독 LF, GHSA-2qh5의 잔여 사항 | Kitploit
도구/GitHubGitHub/abraxas/cakephp-smtp-crlf
Vulnerability AnalysisExploitationWeb Application ExploitationSecurity VirtualizationWeb SecurityPenetration TestingEmail Security
GitHubabraxas/cakephp-smtp-crlf

cakephp-smtp-crlf

CakePHP 5.4.2 - 높음 - 원격 - 헤더 주입 - SmtpTransport 단독 LF, GHSA-2qh5의 잔여 사항

저장소 보기
12일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - cakephp-smtp-crlf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cakephp-smtp-crlf

cakephp-smtp-crlf

분류: 메일 헤더 인젝션 도달 범위: 원격

CakePHP 5.4.2 (887b641) - Cake Software Foundation

GHSA-2qh5 / CVE-2026-77634는 SmtpTransport와 MailTransport에 str_replace("\r\n", '', $val)를 추가했습니다. 이 콜백은 단독 LF나 CR에 대해서는 아무 동작도 하지 않습니다. 헤더 이름은 여전히 정제 없이 연결됩니다. PHP mail()과 우리가 캡처한 SMTP DATA는 단독 LF를 새로운 헤더 라인으로 취급합니다.

애플리케이션이 사용자 데이터를 커스텀 헤더에 복사하는 경우, 공격자는 CRLF 대신 LF를 전송하여 Bcc를 추가하거나, Subject를 재작성하거나, 본문으로 침입할 수 있습니다. 발표된 수정 사항은 이를 막지 못합니다. 기본 cakephp/app은 요청 데이터를 자체적으로 커스텀 헤더에 넣지 않습니다.

ID아직 CVE 없음
분류메일 헤더 인젝션 (GHSA-2qh5의 단독 LF 잔여분)
도달 범위원격 (GHSA-2qh5와 동일: 앱이 사용자 데이터를 Message::setHeaders에 복사)
CWECWE-93
CVSS높음: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
제품CakePHP
영향받는 버전5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
인증GHSA-2qh5와 동일: 앱이 사용자 데이터를 Message::setHeaders / addHeaders에 복사
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

요청 데이터를 커스텀 메일 헤더에 넣는 애플리케이션이 필요합니다.

권한메서드 / 싱크랩 입증 또는 추론
SMTP DATA 헤더 블록에 추가 Bcc: (또는 Cc: / To:) 라인 주입setHeaders(['X-Meta' => "ok\nBcc: [email protected]"]) 후 SmtpTransport::send랩 입증. SMTP DATA와 getHeadersString 모두 새로운 Bcc: 라인을 표시. 증거 X-Oracle: CAKEPHP-SMTP-CRLF-WITNESS
MailTransport를 통한 동일한 주입MailTransport::send의 동일한 콜백MailTransport 포함 목록과 스트립 콜백을 사용한 getHeadersString에서 랩 입증. 이 랩은 PHP mail()을 호출하지 않음
단독 CR 및 단독 LFok\rBcc: ...랩 입증. 쌍만 스트립하면 \r이 남음; CR/LF로 분할하는 헤더 파서는 이를 새 라인으로 취급
Subject 재작성 또는 본문 침입값에 \nSubject: 또는 \n\n 포함동일한 연결에서 추론. 랩은 Bcc / X-Oracle을 주입했으며 Subject는 아님
추가 봉투 수신자DATA 내부에 주입된 Bcc추론. 일부 MTA는 DATA를 재파싱함. Cake의 RCPT TO는 여전히 Message 객체의 setTo / setCc / setBcc만 사용
2바이트 \r\n 쌍GHSA-2qh5 스트립랩 입증 종료. 컨트롤은 okBcc:...를 연결
스켈레톤 앱에서 비인증 RCE이 잔여분이 아님종료
멀티파트 filename= CRLF5.4.2는 이미 "/\r/\n을 스트립종료

발견 방법

GHSA-2qh5, GHSA-fxf7, GHSA-vjqc, 그리고 5.4.2 filename= 관련 사항 이후 cakephp/cakephp 5.4.2를 고정했습니다. 전송 테스트는 "line one\r\nline two"만 전송하고 line oneline two를 기대합니다.

SmtpTransport 5.4.2:

$headers = $message->getHeadersString(
    [...],
    "\r\n",
    function (string $val): string {
        return str_replace("\r\n", '', $val);
    },
);

MailTransport는 동일한 콜백을 사용합니다. Message::getHeadersString은 콜백을 값에 매핑한 다음 $key . ': ' . $val을 수행합니다.

이미 기록된 잘못된 방향: GHSA-2qh5를 종료된 것으로 취급하고 떠나기; 랩에서 PHP mail() 호출하기 (오라클은 SMTP DATA와 getHeadersString); 이를 스켈레톤 앱의 비인증 RCE로 과장하기. 극적인 요소: 리버스 셸.

랩

python3 cakephp-smtp-crlf-Abraxas-Labs.py

또는

cd lab
./run.sh

PHP 8.3에서 Composer cakephp/cakephp:5.4.2. 127.0.0.1:19410의 루프백 SMTP 싱크.

  1. 컨트롤: X-Meta = ok\r\nBcc: [email protected]\r\nX-Oracle: CAKEPHP-SMTP-CRLF-WITNESS. 결과: 하나의 헤더 X-Meta: okBcc: [email protected]: CAKEPHP-SMTP-CRLF-WITNESS.
  2. LF 케이스: \n만 사용한 동일한 페이로드. 결과: SMTP DATA, Smtp getHeadersString, Mail getHeadersString에 새로운 Bcc: 및 X-Oracle: 라인.
  3. CR 케이스: \r만 사용한 동일한 페이로드. 동일한 추가 라인.
SUCCESS cakephp-smtp-crlf pin=5.4.2 control-crlf-stripped=yes lf-bcc=yes cr-leftover=yes how=smtp-data-bcc-line CAKEPHP-SMTP-CRLF-WITNESS

수정 방법

헤더 이름과 값에서 모든 \r 또는 \n을 스트립하거나 거부하십시오 (5.4.2 filename= 새니타이저와 동일). 전송 테스트에서 \r\n 쌍뿐만 아니라 단독 LF와 단독 CR도 커버하십시오.

참고 자료

  • github.com/cakephp/cakephp 태그 5.4.2 (887b641de9f7aba06071f98f17edcbc573cbcf63)
  • src/Mailer/Transport/SmtpTransport.php · src/Mailer/Transport/MailTransport.php · src/Mailer/Message.php
  • 인접 패치됨 (쌍만): GHSA-2qh5-382h-3jpc / CVE-2026-77634
  • CWE-93

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드