Skip to content

security: reconsider auth/CORS posture for state-changing /altimate/mcp/reload-datamate #956

Description

@anandgupta42

Found during the v0.8.8 release review (CTO, P2 deferred).

POST /altimate/mcp/reload-datamate (added in #893) is a state-changing endpoint that re-reads IDE mcp.json from disk and calls MCP.add() to (re)connect MCP clients with whatever command/url those files contain. With no OPENCODE_SERVER_PASSWORD set (the default, loopback bind + startup warning only), any local process — including a browser page the CORS policy reflects http://localhost:* / http://127.0.0.1:* for — can POST to it and trigger a reconnect.

This is the same auth posture as all existing routes (not a new exposure class), but reload-datamate is more side-effectful (spawns/reconnects transports) than the read routes, so it warrants a closer look.

Possible directions: require auth for state-changing /altimate/* routes even when the global password is unset, or tighten the CORS reflection for those routes. Deferred — design decision, not an in-diff edit, and default bind is loopback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions