🇰🇷 한글 설명
@node-oauth/oauth2-server 모듈의 PKCE 검증이 RFC7636 표준을 위반하여 한 글자 같은 매우 짧은 code_verifier를 수용합니다. 실패한 검증 시도가 authorization code를 소비하지 않아, 공격자가 인터셉트한 코드의 verifier를 온라인 무차별 대입 공격으로 추측할 수 있습니다.
💡 쉬운 설명
OAuth 인증 과정에서 보안 암호가 너무 약해도 허용되는 문제입니다. 공격자가 인증 코드를 훔친 후 간단한 암호를 반복 시도해서 맞힐 수 있습니다.
🇺🇸 원문 (English)
@node-oauth/oauth2-server is a module for implementing an OAuth2 server in Node.js. The token exchange path accepts RFC7636-invalid code_verifier values (including one-character strings) for S256 PKCE flows. Because short/weak verifiers are accepted and failed verifier attempts do not consume the authorization code, an attacker who intercepts an authorization code can brute-force code_verifier guesses online until token issuance succeeds.
📍 영향받는 시스템
@node-oauth/oauth2-server (특정 버전 이전 모두)
⚔️ 공격 벡터
authorization code 인터셉트 후 짧은 code_verifier로 온라인 브루트포스 공격
🛡️ 대응 방법
npm update @node-oauth/oauth2-server를 통해 최신 보안 패치 버전으로 업그레이드
🔧 검증 코드
설치된 버전을 확인하여 보안 패치 버전(CVE 수정됨)으로 업그레이드되었는지 확인
npm list @node-oauth/oauth2-server 2>/dev/null | grep oauth2-server