CVE-2026-86698 in hexpm
요약
\~에 의해 VulDB • 2026. 09. 22.
hexpm의 OAuth 토큰 발급 과정에 있는 세션 만료 불충분(Inufficient Session Expiration) 취약점으로 인해, 조직 멤버십이나 세션이 종료된 사용자도 유지된 refresh token을 통해 조직의 비공개 패키지 및 해당 문서 tarballs를 계속 읽을 수 있습니다.
lib/hexpm/oauth/jwt.ex의 generate_refresh_token/4 함수는 access token과 동일한 iss, aud, scope 클레임으로 refresh token에 서명하므로, 동일한 repository:<org> 범위를 포함합니다. 프라이빗 리포지토리를 제공하는 CDN 서비스는 서명과 시간(claims)을 검증한 후 scope claim에서 권한 부여를 수행하며, 데이터베이스 조회가 없고 두 토큰 유형을 구분할 방법이 없습니다. 따라서 멤버 제거 또는 세션 무효화는 30분짜리 access token 수명 이후가 아닌, 30일짜리 refresh token이 만료될 때까지 CDN에서만 적용됩니다. 접근 권한은 읽기 전용이며, 토큰 발급 당시 계정이 속했던 조직으로 제한됩니다.
이 이슈는 hex.pm에 영향을 미칩니다: 2025-10-10부터 2026-09-22 이전까지.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.