🇰🇷 한글 설명
googleapis/mcp-toolbox의 generic opaque token 검증 경로(validateOpaqueToken)에서 인증 우회 취약점이 발견되었습니다. OAuth 2.0 인트로스펙션 응답에서 'active' 필드가 누락될 경우, 시스템이 이를 유효한 토큰으로 잘못 판단하여 보호된 도구와 데이터에 접근할 수 있게 합니다.
💡 쉬운 설명
로그인 확인 과정에서 '이 사용자가 유효한가?'라는 질문에 대한 답변이 아예 비어있을 경우, 시스템이 이를 '예'라고 잘못 오해하는 문제입니다. 이로 인해 인증되지 않은 사용자가 중요한 데이터에 마음대로 접근할 수 있습니다.
🇺🇸 원문 (English)
An authentication bypass vulnerability exists in the generic opaque token validation path (validateOpaqueToken) of googleapis/mcp-toolbox.
When verifying an unparsed opaque token via an OAuth 2.0 introspection endpoint (RFC 7662), the toolbox decodes the response into an introspectResp struct where the Active field is declared as a pointer to a boolean (*bool). The code only explicitly rejects a token if the response contains a populated active field set to false (if introspectResp.Active != nil && !*introspectResp.Active). If an introspection endpoint responds with a payload that completely omits the mandatory active key, the internal variable remains nil, causing the conditional check to short-circuit. As a result, Toolbox accepts authorization tokens missing the "active" field, granting access to protected tools and underlying data sources.
📍 영향받는 시스템
googleapis/mcp-toolbox (해당 취약점이 포함된 버전)
⚔️ 공격 벡터
인트로스펙션 엔드포인트에서 'active' 필드를 의도적으로 누락시킨 응답을 생성하여 인증을 우회함
🛡️ 대응 방법
검증 로직을 수정하여 'active' 필드가 명시적으로 true인 경우에만 토큰을 승인하도록 업데이트해야 함
🔧 검증 코드
설치된 mcp-toolbox의 버전을 확인하여 취약점이 해결된 패치 버전인지 대조함
go list -m googleapis/mcp-toolbox
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Security Verify Access