🇰🇷 한글 설명
web-auth/webauthn-lib의 ProfileBasedRequestOptionsBuilder 메서드가 사용자명을 찾지 못할 때 allowedCredentials 없이 응답을 반환합니다. 공격자는 이 속성의 부재로 유효한 사용자명을 열거할 수 있으며, 표적 공격의 효율성을 크게 높입니다.
💡 쉬운 설명
웹 로그인에서 존재하는 사용자명과 없는 사용자명을 구분할 수 있는 결함입니다. 공격자가 가입된 사용자를 파악하여 더 효과적인 해킹을 준비할 수 있게 됩니다.
🇺🇸 원문 (English)
web-auth/webauthn-lib is an open source set of PHP libraries and a Symfony bundle to allow developers to integrate that authentication mechanism into their web applications. The ProfileBasedRequestOptionsBuilder method returns allowedCredentials without any credentials if no username was found. When WebAuthn is used as the first or only authentication method, an attacker can enumerate usernames based on the absence of the `allowedCredentials` property in the assertion options response. This allows enumeration of valid or invalid usernames. By knowing which usernames are valid, attackers can focus their efforts on a smaller set of potential targets, increasing the efficiency and likelihood of successful attacks. This issue has been addressed in version 4.9.0 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
📍 영향받는 시스템
web-auth/webauthn-lib 버전 4.9.0 미만 모든 버전
⚔️ 공격 벡터
WebAuthn 인증 응답에서 allowedCredentials 속성 유무를 통한 사용자명 열거
🛡️ 대응 방법
web-auth/webauthn-lib을 버전 4.9.0 이상으로 업그레이드
🔧 검증 코드
표시된 버전이 4.9.0 이상이면 안전, 미만이면 취약한 상태
composer show web-auth/webauthn-lib 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'