🇰🇷 한글 설명
Serendipity 2.6-beta2 이하에서 이메일 전송 기능이 HTTP_HOST 헤더를 SMTP Message-ID에 직접 삽입하여 SMTP 헤더 주입 공격을 허용합니다. 공격자가 Host 헤더를 제어하면 임의의 SMTP 헤더를 주입하여 신원 위장, 회신 납치, 이메일 평판 남용이 가능합니다.
💡 쉬운 설명
웹로그 소프트웨어의 이메일 발송 기능에서 사용자가 제어 가능한 Host 정보가 검증 없이 이메일 헤더에 포함됩니다. 이를 악용하면 가짜 이메일을 보내거나 이메일을 조작할 수 있습니다.
🇺🇸 원문 (English)
Serendipity is a PHP-powered weblog engine. In versions 2.6-beta2 and below, the email sending functionality in include/functions.inc.php inserts $_SERVER['HTTP_HOST'] directly into the Message-ID SMTP header without validation, and the existing sanitization function serendipity_isResponseClean() is not called on HTTP_HOST before embedding it. An attacker who can control the Host header during an email-triggering action such as comment notifications or subscription emails can inject arbitrary SMTP headers into outgoing emails. This enables identity spoofing, reply hijacking via manipulated Message-ID threading, and email reputation abuse through the attacker's domain being embedded in legitimate mail headers. This issue has been fixed in version 2.6.0.
📍 영향받는 시스템
Serendipity 2.6-beta2 이하 (2.6.0 미만 모든 버전)
⚔️ 공격 벡터
댓글 알림이나 구독 이메일 발송 시 Host 헤더 조작을 통해 SMTP 헤더 주입
🛡️ 대응 방법
Serendipity를 2.6.0 이상으로 업그레이드하고 include/functions.inc.php에서 HTTP_HOST 검증 확인
🔧 검증 코드
HTTP_HOST가 검증 없이 Message-ID에 직접 삽입되면 취약, 줄 번호가 나타나면 해당 위치에서 serendipity_isResponseClean() 호출 여부 확인 필요
find /var/www -type f -name 'functions.inc.php' -path '*/serendipity/*' 2>/dev/null | xargs grep -n 'HTTP_HOST' 2>/dev/null | head -1