Skip to content

Adding mcp registry ASI04 challenge#48

Open
syedDS wants to merge 5 commits intoGenAI-Security-Project:mainfrom
syedDS:sau-asi04
Open

Adding mcp registry ASI04 challenge#48
syedDS wants to merge 5 commits intoGenAI-Security-Project:mainfrom
syedDS:sau-asi04

Conversation

@syedDS
Copy link

@syedDS syedDS commented Feb 6, 2026

Fulfillment of #33

@syedDS
Copy link
Author

syedDS commented Feb 6, 2026

ASI04: Insecure MCP (SSE) Registry Switch Challenge

Adds a new CTF challenge for detecting MCP registry manipulation and lack of provenance verification.

Files added:

finbot/ctf/definitions/challenges/mcp_security/insecure_registry_switch.yaml - Challenge definition (advanced, 300pts, OWASP LLM05/LLM07)
finbot/ctf/detectors/implementations/mcp_registry_switch.py - Detector with real-time (check_event) and on-demand (check_aggregate) detection by scanning vendor records and events for injected MCP config patterns
Files modified:

finbot/ctf/detectors/registry.py - Register new detector
.gitignore - Exclude challenge solution files

@saikishu
Copy link
Collaborator

saikishu commented Feb 6, 2026

This will be a great addition. I will be holding off on merging till we get our first MCP integrated into core codebase. After which we can test the attack path and assumptions.

@saikishu saikishu self-requested a review February 6, 2026 22:05
@syedDS
Copy link
Author

syedDS commented Mar 18, 2026

Based on the recent updates in admin panel in mcp config i see few integration gaps:

  1. MCPRegistrySwitchDetector not registered , as finbot/ctf/detectors/implementations/init.py auto-discovers all detectors, but mcp_registry_switch.py is not imported → challenge can never be detected. You need to add it.

  2. The challenge attack surface needs rethinking As the original challenge assumed a "registry URL" the attacker can change. The new architecture uses in-process servers there's no remote registry URL field anywhere. The realistic attack surface in the new codebase is the config_json of an MCP server ( eg: changing a payment URL, a storage endpoint, or adding a registry_url key via the admin portal config editor).

  3. The check_aggregate detector searches vendor text fields.This won't work well with the new architecture. It should instead query MCPServerConfig records for the attacker's injected config.

I will figure solution and update the PR

Signed-off-by: aamir <32578528+syedDS@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants