🇰🇷 한글 설명
MCP Toolbox for Databases의 이전 프로토콜 핸들러에서 범위(scope) 강제 적용이 누락되어 발생하는 인증된 권한 우회 취약점입니다. 낮은 권한을 가진 인증된 사용자가 프로토콜 버전을 구버전으로 지정하거나 헤더를 생략함으로써 관리자 권한의 도구를 실행할 수 있습니다.
💡 쉬운 설명
낮은 권한을 가진 사용자가 시스템에 '옛날 방식'으로 대화하자고 요청하면, 보안 검사를 건너뛰고 관리자 기능을 사용할 수 있는 문제입니다. 마치 보안 요원이 최신 신분증은 꼼꼼히 검사하지만, 옛날 신분증은 대충 확인하고 통과시켜주는 것과 같습니다.
🇺🇸 원문 (English)
An authenticated authorization bypass vulnerability exists in MCP Toolbox for Databases due to missing scope enforcement across older protocol handlers.
While the 2025-11-25 protocol version handler correctly enforces per-tool restrictions defined by scopesRequired, older supported protocol versions (2025-06-18, 2025-03-26, and 2024-11-05) omit this check. An authenticated client with low-privilege tokens (e.g., read) can bypass the intended per-tool scope restrictions and execute high-privilege tools (e.g., admin) simply by specifying an older protocol version in the MCP-Protocol-Version header, or by omitting the header entirely (which causes the server to default to the vulnerable 2024-11-05 handler).
📍 영향받는 시스템
MCP Toolbox for Databases (2025-11-25 이전 프로토콜 핸들러를 사용하는 모든 버전)
⚔️ 공격 벡터
MCP-Protocol-Version 헤더에 취약한 구버전(2025-06-18, 2025-03-26, 2024-11-05)을 명시하거나 헤더를 생략하여 요청
🛡️ 대응 방법
최신 프로토콜 버전(2025-11-25 이상)을 사용하도록 강제하고, 구버전 프로토콜 지원을 중단하거나 보안 패치를 적용하십시오.
🔧 검증 코드
요청 시 구버전 프로토콜이 허용되거나 서버가 해당 버전으로 응답한다면 취약한 상태입니다.
curl -I -H 'MCP-Protocol-Version: 2024-11-05' http://target-server/api 2>/dev/null | grep -i 'version'