🇰🇷 한글 설명
Rapid7 Bulk Export MCP 0.2.5~0.6.1 버전의 export-status 컴포넌트에서 GraphQL 쿼리 주입 취약점이 발견되었습니다. 검증되지 않은 export_id 값이 GraphQL 쿼리 문자열에 직접 삽입되어, 공격자가 의도하지 않은 쿼리를 실행하거나 스키마 정보를 탈취할 수 있습니다. 다만, 모든 쿼리는 사용자의 기존 API 권한 범위 내에서만 실행되므로 권한 상승은 불가능합니다.
💡 쉬운 설명
프로그램이 데이터를 요청할 때 사용하는 식별자 값에 특수 문자를 섞어 넣어, 원래 의도와 다른 명령을 실행하게 만드는 보안 약점입니다. 하지만 공격자가 사용자의 권한을 넘어서는 정보를 가져올 수는 없으며, 사용자가 이미 볼 수 있는 정보만 추가로 조회할 수 있는 수준입니다.
🇺🇸 원문 (English)
Rapid7 Bulk Export MCP versions 0.2.5 through 0.6.1 suffer from a GraphQL query injection issue in the export-status component (`get_export_status` in `src/export_manager.py`), whereby the `export_id` value — an unvalidated MCP tool argument reaching the function via the `check_rapid7_export_status` and `download_rapid7_export` tools — is interpolated directly into the GraphQL query string. A crafted `export_id` containing quote and brace characters can terminate the intended `export(id: "...")` selection early and append attacker-controlled root-level selections (for example, schema introspection), producing a single well-formed GraphQL document that is then sent to the Rapid7 export API under the operator's own API key.
Notably, this issue does not grant an existing actor any access they do not already have: every injected query executes within the operator's own already-authenticated API scope, using the operator's own valid API key, and cannot cross a tenant or account boundary. A directly-malicious operator gains nothing they could not already do by calling the API directly; the realistic exposure is limited to a compromised or careless upstream MCP client, or indirect prompt injection forwarding an unvalidated identifier. This is fixed in version 0.6.2, which passes `export_id` as a parameterized GraphQL variable (`$exportId: ID!`).
📍 영향받는 시스템
Rapid7 Bulk Export MCP versions 0.2.5 through 0.6.1
⚔️ 공격 벡터
조작된 export_id 값을 통해 GraphQL 쿼리 구조를 변경하여 임의의 쿼리 실행
🛡️ 대응 방법
Rapid7 Bulk Export MCP 버전을 0.6.2 이상으로 업데이트하여 매개변수화된 쿼리 사용
🔧 검증 코드
출력된 Version이 0.6.2보다 낮으면 취약한 버전이 설치된 상태입니다.
pip show rapid7-bulk-export-mcp 2>/dev/null | grep -E 'Version'