🇰🇷 한글 설명
PHPMailer 1.7에서 sendmail을 사용하도록 설정된 경우, SendmailSend 함수가 입력값을 제대로 검증하지 않아 shell metacharacters를 통해 원격 공격자가 임의의 shell 명령어를 실행할 수 있는 취약점입니다. 이메일 발송 기능을 사용하는 웹 애플리케이션에서 공격자는 매개변수 조작을 통해 서버에서 임의 명령을 실행할 수 있습니다.
💡 쉬운 설명
PHPMailer 1.7에서 이메일 발송할 때 입력값이 제대로 확인되지 않아, 악의적인 명령어를 숨겨서 보내면 서버가 그대로 실행해버립니다. 이를 이용해 공격자는 서버를 자유롭게 조종할 수 있게 됩니다.
🇺🇸 원문 (English)
PHPMailer 1.7, when configured to use sendmail, allows remote attackers to execute arbitrary shell commands via shell metacharacters in the SendmailSend function in class.phpmailer.php.
📍 영향받는 시스템
PHPMailer 1.7 이하 (sendmail 모드 사용 시)
⚔️ 공격 벡터
이메일 주소, 제목, 참조(Cc) 등의 매개변수에 shell metacharacters(|, ;, $, `, &, >, <)를 삽입하여 SendmailSend 함수로 전달
🛡️ 대응 방법
PHPMailer를 최신 버전으로 업그레이드하거나, sendmail 대신 SMTP를 사용하도록 변경, 이메일 매개변수에 대한 엄격한 검증 구현
🔧 검증 코드
PHPMailer 파일이 발견되면 버전을 확인하여 1.7 이하인지 확인하고, sendmail 설정 확인 후 즉시 업그레이드 필요
find /var/www -name '*.php' -type f 2>/dev/null | xargs grep -l 'class.phpmailer' 2>/dev/null | head -1 | xargs grep -o 'Version.*' || echo 'Not found'