
CVE-2026-73313에 대한 개념 증명 익스플로잇으로, XenForo의 패스키 TFA 공급자의 MFA 우회를 통해 비밀번호 유출 후 계정 탈취를 가능하게 합니다.
XenForo 2.3.13 이전 버전에서는 한 사용자의 2단계 로그인을 다른 사용자가 소유한 패스키로 완료할 수 있습니다.
패스키 관리자는 어서션에 제공된 자격 증명 ID를 사용하여 전역 조회를 수행하고 해당 자격 증명의 WebAuthn 서명을 올바르게 검증합니다. 그런 다음 TFA 공급자는 자격 증명 소유자가 비밀번호 로그인이 대기 중인 사용자와 일치하는지 확인하지 않고 결과를 부울 값으로 축소합니다.
대상의 올바른 비밀번호를 아는 공격자는 공격자 자신이 등록한 패스키로 대상의 패스키 챌린지에 응답할 수 있습니다. 로그인은 대상으로 완료됩니다. 공유 흐름은 대상이 관리자인 경우 ACP 로그인에도 영향을 미쳤습니다.
이는 첫 번째 요소가 손상된 후의 MFA 우회이며, 비밀번호 없는 계정 탈취가 아닙니다. 공격자는 자신의 유효한 패스키, 대상의 비밀번호, 그리고 패스키 TFA가 구성된 대상 계정이 필요합니다.
저는 XenForo 2.3.12(빌드 2031270)에서 공개 및 ACP 흐름을 모두 재현했습니다. XenForo 2.3.13에는 수정 사항이 포함되어 있습니다.
두 개의 종속성을 설치하고, 일회용 공격자/대상 사용자와 공격자 소유의 테스트 자격 증명을 준비한 후 다음을 실행합니다:
python -m pip install -r requirements.txt
python poc.py https://xenforo.example TARGET_USERNAME ATTACKER_CREDENTIAL_ID attacker-private-key.pem
대상 비밀번호는 숨겨진 프롬프트로 읽습니다. 스크립트는 사용자를 프로비저닝하지 않고, 패스키 행을 수정하지 않으며, 비밀번호를 출력하지 않고, 증거 파일을 작성하지 않습니다. 출력에는 HTTP 상태와 최종 부울 값만 포함됩니다.
발견자: Marco Paciaroni (BomboBombone).