🇰🇷 한글 설명
WordPress용 YaySMTP 플러그인의 putFile 함수에서 파일 유형 검증이 불충분하여 발생하는 임의 파일 업로드 취약점입니다. 인증된 공격자가 실행 가능한 파일을 업로드하여 원격 코드 실행(RCE)을 수행할 수 있으며, 특히 nginx나 AllowOverride None으로 설정된 Apache 환경에서 매우 위험합니다.
💡 쉬운 설명
해커가 웹사이트에 악성 프로그램을 몰래 올릴 수 있는 보안 구멍이 발견되었습니다. 이를 통해 해커가 웹사이트의 제어권을 완전히 빼앗을 수 있습니다.
🇺🇸 원문 (English)
The YaySMTP – WP Mail SMTP with Email Logs, Tracking & Reports plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 2.7.7 via the putFile function. This is due to insufficient file type validation in the putFile function, as sanitize_file_name() does not strip executable extensions and no allow-list, MIME check, or safe-extension rename is applied. This makes it possible for authenticated attackers, with subscriber-level access and above, to upload files that may be executable, which makes remote code execution possible. The only server-side guard is a .htaccess file containing 'Require all denied' written by writeGuards(), which is silently ignored by nginx and by Apache configured with AllowOverride None, meaning RCE is fully achievable on those server configurations.
📍 영향받는 시스템
YaySMTP – WP Mail SMTP with Email Logs, Tracking & Reports plugin (버전 2.7.7 이하 전체)
⚔️ 공격 벡터
구독자(Subscriber) 이상의 권한을 가진 인증된 사용자가 검증되지 않은 파일 업로드 기능을 통해 악성 파일을 업로드함
🛡️ 대응 방법
YaySMTP 플러그인을 최신 버전으로 업데이트하거나, 파일 업로드 관련 설정을 보안 강화 모드로 변경하십시오.
🔧 검증 코드
출력된 결과에서 yay-smtp 플러그인의 버전이 2.7.7 이하인지 확인하십시오.
wp-cli plugin list --allow-root | grep -E 'yay-smtp'