🔍 CVE-2025-26620

0.0
CVSS Score
UNKNOWN
2025-02-18
2026-06-17 09:02
✅ 완료

🇰🇷 한글 설명

Duende.AccessTokenManagement 라이브러리에서 클라이언트 자격 증명 흐름을 사용할 때 레이스 컨디션(경쟁 상태) 취약점이 발견되었습니다. 서로 다른 프로토콜 매개변수를 사용하여 동시에 액세스 토큰을 요청할 경우, 잘못된 범위(scope)나 리소스 지표가 포함된 토큰이 반환될 수 있습니다.

💡 쉬운 설명

여러 요청이 동시에 들어올 때 시스템이 혼동을 일으켜, A라는 용도로 요청한 토큰을 B라는 용도로 잘못 발급해 줄 수 있는 문제입니다. 이로 인해 권한이 없는 데이터에 접근하게 될 위험이 있습니다.

🇺🇸 원문 (English)

Duende.AccessTokenManagement is a set of .NET libraries that manage OAuth and OpenId Connect access tokens. Duende.AccessTokenManagement contains a race condition when requesting access tokens using the client credentials flow. Concurrent requests to obtain an access token using differing protocol parameters can return access tokens obtained with the wrong scope, resource indicator, or other protocol parameters. Such usage is somewhat atypical, and only a small percentage of users are likely to be affected. Duende.AccessTokenManagement can request access tokens using the client credentials flow in several ways. In basic usage, the client credentials flow is configured once and the parameters do not vary. In more advanced situations, requests with varying protocol parameters may be made by calling specific overloads of these methods: `HttpContext.GetClientAccessTokenAsync()` and `IClientCredentialsTokenManagementService.GetAccessTokenAsync()`. There are overloads of both of these methods that accept a `TokenRequestParameters` object that customizes token request parameters. However, concurrent requests with varying `TokenRequestParameters` will result in the same token for all concurrent calls. Most users can simply update the NuGet package to the latest version. Customizations of the `IClientCredentialsTokenCache` that derive from the default implementation (`DistributedClientCredentialsTokenCache`) will require a small code change, as its constructor was changed to add a dependency on the `ITokenRequestSynchronization` service. The synchronization service will need to be injected into the derived class and passed to the base constructor. The impact of this vulnerability depends on how Duende.AccessTokenManagement is used and on the security architecture of the solution. Most users will not be vulnerable to this issue. More advanced users may run into this issue by calling the methods specified above with customized token request parameters. The impact of obtaining an access token with different than intended protocol parameters will vary depending on application logic, security architecture, and the authorization policy of the resource servers.

📍 영향받는 시스템

Duende.AccessTokenManagement (TokenRequestParameters를 사용하는 고급 설정 사용자)

⚔️ 공격 벡터

서로 다른 매개변수를 가진 다수의 토큰 요청을 동시에 발생시켜 레이스 컨디션 유도

🛡️ 대응 방법

NuGet 패키지를 최신 버전으로 업데이트하고, 커스텀 캐시 구현 시 ITokenRequestSynchronization 서비스를 주입하도록 코드를 수정하십시오.

🔧 검증 코드

출력된 패키지 버전이 취약점이 해결된 최신 버전인지 확인하십시오.

Shell / Script
dotnet list package | grep Duende.AccessTokenManagement

💻 영향받는 소프트웨어

.NET