CVE-2026-101041 in vulnerability-lookup
요약
\~에 의해 VulDB • 2026. 09. 27.
vulnerability-lookup 웹 애플리케이션의 계정 복구(비밀번호 재설정) 기능에는 단일 사용 복구 토큰 처리 과정에서 시간 확인 대 시간 사용(TOCTOU) 경쟁 조건이 존재합니다. 기존 구현 방식은 저장된 다이제스트와 토큰 논스(nonc)를 검증한 후, 별도의 데이터베이스 작업을 통해 이를 소모(삭제)했습니다. 동일한 유효한 복구 토큰을 제시하는 두 개의 동시 HTTP 요청 모두 트랜잭션이 커밋되기 전에 검증 단계를 통과할 수 있으며, 이로 인해 양쪽에서 대상 계정의 비밀번호를 설정할 수 있습니다. 마지막으로 커밋되는 트랜잭션이 첫 번째 트랜잭션을 덮어쓰므로, 유효한 복구 토큰을 보유한 공격자는 합법적인 사용자의 비밀번호를 자신이 선택한 값으로 대체할 수 있습니다.
동일 엔드포인트의 2차 결함(confirm_account)은 유효한 복구 링크를 사용하여 빈 비밀번호나 매우 짧은 비밀번호(예: 3자)를 설정하는 것을 허용했습니다. 뷰 핸들러는 두 비밀번호 필드 간에 수등 비교만 수행했으며 폼의 검증 로직을 호출하지 않아, 의도된 최소 길이 및 복잡성 제약 조건이 우회되었습니다.
영향을 받는 구성 요소는 사용자 계정 복구 엔드포인트(/user/confirm_account/<token>)와 관련 토큰 검증 및 소모 논리이며, 이는 User 모델(website/models/user.py)과 뷰 레이어(website/web/views/user.py)에서 구현되어 있습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.