
MediaWiki action=emailuser API EmailUserAuthorizeSend 훅 우회(CVE-2026-102973)를 시연하는 정제된 보고서 및 로컬 개념 증명 스크립트.
보고자: Marco Paciaroni (BomboBombone).
MediaWiki의 action=emailuser API 경로는 EmailUserAuthorizeSend 훅을 호출하지 않았습니다. 확장 기능이나 사이트 정책이 해당 훅을 사용하여 발신자를 거부할 때, 웹 양식은 거부를 적용했지만 API 경로는 여전히 메시지를 보낼 수 있었습니다.
이는 구성에 따라 달라집니다. 로컬 정책이나 확장 기능이 EmailUserAuthorizeSend를 인가 제어로 사용하는 경우에만 위키에 영향을 미칩니다. 기본 코어 구성은 그 자체로 거부 훅을 제공하지 않습니다. 영향을 받는 계정은 또한 일반적인 이메일 전송 권한이 필요합니다.
일회용 발신자를 거부하는 임시 훅으로 격리된 로컬 테스트 위키를 구성하고, MediaWiki 메일이 Mailpit과 같은 로컬 SMTP 싱크로만 전달되도록 구성하십시오. 해당 싱크에 대한 일회용 수신자 계정을 생성하십시오. 스크립트는 거부된 웹 양식과 API 요청을 비교하고 API가 정책 훅을 건너뛰었는지 여부를 보고합니다.
스크립트는 비루프백 위키 URL을 거부하고, 명시적인 로컬 SMTP 확인 플래그와 입력 확인을 요구하며, 발신자 비밀번호를 묻습니다. 외부로 메일을 보내도록 구성된 위키는 사용하지 마십시오.
python poc.py --base http://127.0.0.1:8080 --username PolicyTestSender --target CVE102973TestRecipient --confirm-local-smtp
훅의 거부 메시지에는 email-policy-denied(기본 마커)가 포함되어야 합니다. 발신자는 일반적인 sendemail 권한이 필요하며, 수신자는 로컬 싱크 주소를 사용해야 합니다.