🇰🇷 한글 설명
Auth0-PHP SDK에서 액세스 토큰의 audience 검증이 제대로 수행되지 않아 영향을 받는 애플리케이션에서 ID 토큰을 액세스 토큰으로 잘못接受할 수 있는 취약점
💡 쉬운 설명
Auth0-PHP SDK를 사용하는 애플리케이션에서 토큰 검증이 제대로 안 되서 보안 문제가 생길 수 있습니다. 이는 ID 토큰을 액세스 토큰으로 잘못 사용할 수 있게 됩니다. Auth0-PHP SDK 버전 8.0.0에서 8.17.0 사이를 사용하는 프로젝트에 영향을 미칩니다.
🇺🇸 원문 (English)
Auth0-PHP is a PHP SDK for Auth0 Authentication and Management APIs. In applications built with the Auth0-PHP SDK, the audience validation in access tokens is performed improperly. Without proper validation, affected applications may accept ID tokens as Access tokens. Projects are affected if they use Auth0-PHP SDK versions between v8.0.0 and v8.17.0, or applications using the following SDKs that rely on the Auth0-PHP SDK versions between v8.0.0 and v8.17.0: Auth0/symfony versions between 5.0.0 and 5.5.0, Auth0/laravel-auth0 versions between 7.0.0 and 7.19.0, and/or Auth0/wordpress plugin versions between 5.0.0-BETA0 and 5.4.0. Auth0/Auth0-PHP version 8.18.0 contains a patch for the issue.
📍 영향받는 시스템
Auth0-PHP SDK 버전 8.0.0에서 8.17.0 사이, Auth0/symfony 버전 5.0.0에서 5.5.0 사이, Auth0/laravel-auth0 버전 7.0.0에서 7.19.0 사이, Auth0/wordpress 플러그인 버전 5.0.0-BETA0에서 5.4.0 사이
⚔️ 공격 벡터
액세스 토큰의 audience 검증을 우회하여 ID 토큰을 액세스 토큰으로 사용
🛡️ 대응 방법
Auth0-PHP SDK 버전 8.18.0으로 업데이트하거나, 영향을 받는 SDK 버전을 사용하는 경우에는 해당 SDK의 최신 버전으로 업데이트하세요.
🔧 검증 코드
이 코드는 로컬 Python 환경에서 Auth0-PHP SDK의 버전을 확인하여 취약점 여부를 점검합니다. Python과 pkg_resources가 설치되어 있어야 하며, Auth0-PHP SDK가 설치되어 있어야 합니다. 코드를 실행하면 Auth0-PHP SDK의 버전과 함께 취약점 여부를 출력합니다.
python -c "import pkg_resources; print(' Auth0-PHP SDK 버전:', pkg_resources.get_distribution('auth0').version); if pkg_resources.get_distribution('auth0').version >= '8.0.0' and pkg_resources.get_distribution('auth0').version < '8.18.0': print({"result": "취약", "reason": "Auth0-PHP SDK 버전이 취약한 버전입니다."}); else: print({"result": "양호", "reason": "Auth0-PHP SDK 버전이 안전한 버전입니다."})"