
# CVE-2026-73312 개념 증명 및 기술 문서 XenForo 2.3.13 이전 버전의 OAuth2 리프레시 토큰 재사용 취약점에 대한 개념 증명 및 기술 문서입니다. 이 문제를 테스트하기 위한 Python 스크립트가 포함되어 있습니다.
XenForo 2.3.13 이전 버전에서는 상위 액세스 토큰이 만료된 후에도 OAuth2 리프레시 토큰을 재사용할 수 있는 문제가 있습니다.
XenForo는 의도적으로 리프레시 토큰이 수명이 짧은 액세스 토큰보다 오래 유효하도록 설계했습니다. 토큰 회전 중에 교체용 토큰 패밀리를 생성한 다음, 상위 액세스 토큰 폐기자에게 이전 패밀리를 소비하도록 요청합니다. 그런데 이 폐기자는 액세스 토큰이 만료된 경우 관련 리프레시 토큰을 폐기하기 전에 조기 반환합니다.
결과적으로 원래 리프레시 토큰을 다시 제출하여 동일한 사용자와 범위를 가진 또 다른 독립적인 토큰 패밀리를 생성할 수 있습니다. 공격자는 이미 유효한 리프레시 토큰(및 기밀 클라이언트의 경우 클라이언트 시크릿)을 보유하고 있어야 합니다. 이 문제는 손상된 자격 증명의 유효 수명을 연장시키는 것이며, 그 자체로 로그인 우회나 권한 상승은 아닙니다.
저는 상위 액세스 토큰이 만료되도록 허용한 후 XenForo 2.3.12(빌드 2031270)에서 이 문제를 재현했습니다. XenForo 2.3.13에 수정 사항이 포함되어 있습니다.
python poc.py https://xenforo.example CLIENT_ID REFRESH_TOKEN --verify-me
이 스크립트는 인증된 테스트 토큰 하나를 두 번 제출하고 해시와 상태만 출력합니다. 재생이 거부되면 상태 0으로 종료되고, 취약함이 확인되면 상태 1로 종료되어 자동화가 취약한 상태를 성공으로 오인하지 않도록 합니다.
발견자: Marco Paciaroni (BomboBombone).