Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-103977 — 세션 범위 TOTP 속도 제한은 반복적인 검증 시도를 허용합니다 | Kitploit
도구/GitHubGitHub/pervinzahidli/cve-2026-103977
Authentication & AuthorizationDefensive ToolsVulnerability AnalysisAuthenticationPapers & Research
GitHubpervinzahidli/cve-2026-103977

CVE-2026-103977

세션 범위 TOTP 속도 제한은 반복적인 검증 시도를 허용합니다

저장소 보기
2일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

요약

FileRise 3.23.0 이전 버전은 실패한 TOTP 검증 시도를 PHP 세션 상태에 저장했습니다. 이 카운터는 하나의 세션 내에서 시도 횟수를 제한했지만, 새로 생성된 세션 간에는 유지되지 않았습니다.

대상 계정의 유효한 기본 자격 증명을 이미 보유한 공격자는 로그인 워크플로를 재시작하여 새로운 대기 중 로그인 세션을 받고 TOTP 시도 허용량을 복원할 수 있었습니다. 이 과정을 반복하면 의도된 5회 시도 제한을 넘어 지속적인 온라인 TOTP 추측이 가능했습니다.

세부 사항

TOTP 검증 흐름은 실패 카운터를 $_SESSION에 유지했습니다. 5회 실패 제출 후, 해당 세션에서 추가 시도는 HTTP 429를 반환했습니다.

그러나 새 세션에서 기본 인증을 성공적으로 완료하면 새로운 TOTP 실패 카운터를 가진 새로운 대기 중 로그인 상태가 생성되었습니다. 따라서 이전 계정의 TOTP 실패는 이월되지 않았습니다.

이 문제는 동일한 지속적 제한을 적용하지 않은 다른 대기 중 로그인 TOTP 핸들러에도 영향을 미쳤습니다. 결과적으로 수정 사항은 모든 대기 중 로그인 TOTP 검증 경로에 중앙 집중식으로 적용되었습니다.

이 문제는 CWE-307: 과도한 인증 시도에 대한 부적절한 제한으로 분류됩니다.

영향

악용하려면 자격 증명 재사용, 피싱 또는 기타 침해를 통해 획득한 비밀번호와 같이 대상 계정의 유효한 기본 자격 증명을 보유해야 합니다.

이 취약점은 자격 증명을 노출하거나 TOTP를 즉시 우회하지 않습니다. 지속적인 계정 전체 제한 없이 자동화된 TOTP 추측을 계속할 수 있게 합니다. 추측이 성공하면 영향을 받는 계정의 권한(잠재적으로 관리자 권한 포함)으로 인증이 완료됩니다.

TOTP가 활성화되지 않은 계정은 이 특정 2차 인증 요소 속도 제한 문제의 영향을 받지 않습니다.

수정 사항

FileRise 3.23.0은 중앙 집중식 지속적 TOTP 시도 제한을 도입합니다:

  • 각 계정은 15분 창당 5회의 TOTP 검증 시도로 제한됩니다.
  • 계정 제한은 PHP 세션 및 클라이언트 주소 변경 전반에 걸쳐 유지됩니다.
  • 더 높은 소스 전체 제한은 여러 계정에 분산된 시도를 제한합니다.
  • 시도는 잠긴 지속적 상태를 사용하여 검증 전에 예약됩니다.
  • 모든 대기 중 로그인 TOTP 검증 경로가 동일한 제한기를 사용합니다.
  • 성공적인 TOTP 검증은 계정 시도 예산을 초기화합니다.
  • 비밀번호 또는 ID 공급자 인증은 TOTP 실패를 재설정하지 않습니다.

기존 계정, TOTP 시크릿, 세션, Docker 설치 및 배포 구성에는 마이그레이션이 필요하지 않습니다.

사용자는 FileRise 3.23.0 이상으로 업그레이드해야 합니다.

유지관리자 응답

책임 있는 공개와 자세한 재현 단계에 감사드립니다.

TOTP 검증 워크플로를 검토하여 근본적인 문제를 확인했습니다. 실패한 TOTP 제출은 기본 프런트엔드 검증 엔드포인트의 PHP 세션 카운터에 의해서만 제한되었습니다. 따라서 새 세션에서 성공적인 기본 인증 단계를 반복하면 2차 인증 요소 시도 예산을 복원할 수 있었습니다. 또한 검토 과정에서 동일한 시도 카운터를 적용하지 않은 다른 대기 중 로그인 TOTP 핸들러를 확인했으며, 따라서 수정 사항은 보고된 엔드포인트뿐만 아니라 검증 경로 전반에 중앙 집중식으로 적용되었습니다.

수정 사항은 FileRise v3.23.0에 구현되었습니다:

  • 구문적으로 유효한 TOTP 제출은 이제 검증 전에 지속적 계정 전체 예산에서 시도를 예약합니다.
  • 계정 예산은 PHP 세션 및 클라이언트 주소와 무관하므로 세션을 교체하거나 소스 주소를 순환해도 시도가 복원되지 않습니다.
  • 더 높은 지속적 소스 전체 예산은 여러 계정에 분산된 시도를 제한합니다.
  • 두 대기 중 로그인 TOTP 핸들러 모두 동일한 제한기를 사용하여 폼, Basic Auth 및 OIDC로 설정된 대기 중 로그인 세션을 포괄합니다.
  • 비밀번호 또는 ID 공급자 성공은 더 이상 2차 인증 요소 실패 예산을 재설정하지 않습니다.
  • 성공적인 TOTP 검증은 계정 예산을 초기화하고 소스 예산에서 성공한 예약을 제거하므로, 공유 네트워크의 일반적인 성공 사용자는 실패를 누적하지 않습니다.
  • 시도 상태는 해시된 계정/소스 식별자, 잠긴 업데이트, 원자적 파일 교체, 자동 만료 및 제한기 저장소를 사용할 수 없거나 손상된 경우 fail-closed 처리를 사용합니다.
  • 성공적인 복구 코드 사용은 계정의 TOTP 시도 상태를 초기화합니다.

계정 제한은 15분 창에서 5회 시도입니다. 소스 전체 제한은 공유 네트워크의 오탐을 줄이기 위해 의도적으로 더 높은 동일 창에서 50회 시도입니다. 기존 계정, TOTP 시크릿, 세션, Docker 설치 및 배포 구성에는 마이그레이션이 필요하지 않습니다.


Credit: Pervin Zahidli (@ech0void ) Ref : https://github.com/error311/FileRise/security/advisories/GHSA-4hfj-6478-5cv7

도구 다운로드