Skip to content

Bug/Security: secrets-mcp cartridge returns stubs and has insecure GraphQL dispatch #214

@nkar123412-hub

Description

@nkar123412-hub

I have analyzed the cartridge and found two significant issues:

  1. Functional Gap in FFI Invoke:
    The function in (lines 222-233) returns static JSON stubs (e.g., ) for all tools instead of calling the actual vault state machine functions (, , etc.) defined in the same file. This renders the cartridge non-functional in terms of actual secret management.

  2. Insecure GraphQL Dispatch in Adapter:
    In (lines 66-77), the function uses to determine which tool to invoke based on the presence of a substring in the request body. This allows any request containing the tool name (e.g., 'secrets_unseal') to trigger the operation, regardless of the actual GraphQL query structure.

Recommendation:

  • Connect to the actual vault functions.
  • Implement proper GraphQL query parsing in the adapter instead of simple substring matching.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions