Process Compose: browser DNS rebinding lets websites control local MCP tools
The process-compose MCP surface lacks Host header validation, so any website a developer visits can reach it via DNS rebinding and drive local process control tools.
$ whoami
$ cat role.txt
Security enthusiast
$ cat focus.txt
CTFs got me into security and I never grew out of them. I spend my free time on challenge boxes, bug bounty, and reading source until something looks wrong. Occasionally that becomes a CVE. Mostly it just makes me better at this.
cat about.md
I work on web security: application and API bugs, authentication logic, and the request-handling code that sits in front of everything else. Lately that has meant the servers AI agents talk to, where the same old mistakes keep showing up in new places.
Most of my published work started the same way. Read how something was built, notice an assumption that does not hold, then check whether it actually matters.
I learned this through CTFs rather than coursework. Several hundred challenges across web exploitation, boot2root machines and crypto, all written up as I went.
cat experience.log
cat education.log
ls -la ./cves
24 published CVEs, disclosed through GitHub Security Advisories. Each entry links to its advisory and the fixed version; technical writeups are added as each disclosure clears.
The process-compose MCP surface lacks Host header validation, so any website a developer visits can reach it via DNS rebinding and drive local process control tools.
The Streamable HTTP transport accepts requests without validating the Host header, letting a malicious page reach the locally-bound MCP server via DNS rebinding.
Unvalidated user-controlled URLs in the GitLab MCP server let an attacker make the host issue requests to arbitrary destinations, reaching internal services.
The bundled @agent-infra MCP servers listen on all interfaces with no authentication, exposing arbitrary command execution to anyone who can reach the host.
The MCP server omits Host header validation, so a browser-based DNS rebinding attack can reach the locally-bound service.
The CLI sends stored credentials to whatever endpoint is configured, without validating it - so a crafted configuration exfiltrates the user's API token.
cat publications.bib
Analysis of GraphQL injection vectors: how introspection and resolver mishandling create exploitable paths, the attack chains that follow, and the real-world weaknesses behind them.
Two CVEs in jupyter-mcp-server chain into a zero-click hijack of any live Jupyter notebook connection.
Chaining a filename and a DNS record to take over CircleCI's MCP server.
ls -la ./projects
Research framework for turning MCP DNS rebinding into a live attack lab. Scans local MCP servers from a Chrome extension, drives a real DNS rebinding attack through your own VM and DNS zone, captures the MCP session, and operates it from a token-protected dashboard.
Academic project implementing time side-channel attacks: password-verification timing, defeating artificial random delays with statistics, and ECDSA key extraction. Runs against ESP32 and Arduino hardware, with a written report.
A Docker-based lab for standing up WordPress with arbitrary plugin sets and versions, so vulnerability research can be reproduced locally against a target you control.
Writeups across HackTheBox, TryHackMe, OverTheWire, root-me, webhacking.kr, pwnable.kr and more, published as a Jekyll site with its own search.
A CTF challenge authored during the third year of my BSc, covering network security and exploitation.
Telegram bot that translates and forwards messages between channels.
./contact.sh
Open to vulnerability research roles, collaboration and disclosure coordination.