Seven common markdown filename domains (readme.md, changelog.md, etc.) were investigated in a sandboxed environment. 57% are actively detecting AI agents and building infrastructure for potential prompt injection attacks.
Executive Summary
Moldova’s country-code TLD .md creates a dangerous namespace collision with markdown files. When auto-linking systems or AI agents encounter README.md in text, they may inadvertently fetch https://readme.md — a domain squatter’s site, not a repository file.
Key Finding: 4 of 7 tested domains are actively serving different content to AI agents versus human browsers. This is pre-positioned attack infrastructure.
Geopolitical Note: Moldova is not a hostile state. Quite the opposite. President Maia Sandu won an EU accession referendum in October 2024, and the country is actively moving toward Western integration. This matters because it means we can actually do something about abuse on .md domains. Registrar cooperation, CERT coordination, takedown enforcement. These are realistic options here. Try that with a .ru or .by domain and see how far you get.
| Severity | Type | Vector |
|---|---|---|
| HIGH | Namespace collision + AI targeting | Auto-linking, AI agent URL fetching |
Threat Classification
What We Found
- No overtly malicious code detected. Not yet, anyway.
- All domains host legitimate-appearing commercial services
- 57% actively detect AI user-agents and referrers
- Differential content delivery confirmed
- Infrastructure ready for weaponization
Why This Matters
- Detection is operational. These sites can identify Claude, ChatGPT, and other AI agents.
- Tracking is active. Each AI visit gets unique session identifiers.
- Attack surface exists. One code push away from prompt injection.
- Legitimate facade. Real businesses provide plausible deniability.
Domains Investigated
| Domain | IP | AI Targeting | Content |
|---|---|---|---|
| readme.md | 46.36.217.39 | ⚠️ YES | Chess gaming platform |
| changelog.md | 46.36.217.39 | ⚠️ YES | Product feedback SaaS |
| setup.md | 104.21.44.82 | ⚠️ YES | Minecraft admin wiki |
| license.md | 205.196.80.240 | ⚠️ YES | Open source license tool |
| install.md | 104.21.49.214 | ✓ No | Unknown |
| contributing.md | 205.196.80.240 | ✓ No | Unknown |
| security.md | 217.26.150.22 | ✓ No | Security equipment shop |
Note: readme.md and changelog.md share the same IP. That is coordinated infrastructure.
AI Detection Evidence
User-Agent Testing
We tested each domain with various user-agent strings:
| User-Agent | readme.md Response |
|---|---|
| Mozilla/5.0 (baseline) | Hash: 02af349f |
| Claude-Agent/1.0 | Hash: 81842a04 ⚠️ DIFFERS |
| ChatGPT-User/1.0 | Hash: 44b2bbb4 ⚠️ DIFFERS |
| Anthropic-Claude/1.0 | Hash: 3237bf6f ⚠️ DIFFERS |
| OpenAI-Agent/1.0 | Hash: a0269e5d ⚠️ DIFFERS |
Referrer Testing
| Referrer Header | Response Hash |
|---|---|
| (none) | 02af349f (baseline) |
| claude.ai/chat/* | 54c191a2 ⚠️ DIFFERS |
| chat.openai.com/c/* | bf81e7d7 ⚠️ DIFFERS |
| app.anthropic.com/* | 15c95b47 ⚠️ DIFFERS |
Control Test
security.md showed NO variation across all tests. This confirms the variation on other domains is intentional, not random server behavior.
Attack Scenarios
Scenario 1: Referrer Leakage (HIGH likelihood)
- AI agent auto-fetches
readme.mdURL from conversation - Referrer header contains conversation context (claude.ai/chat/abc123)
- Google Analytics on target site captures referrer
- Conversation metadata exfiltrated
Scenario 2: Prompt Injection (Currently DORMANT)
- Site detects AI user-agent
- Serves hidden instructions in HTML comments or meta tags
- AI agent ingests malicious instructions
- Behavior manipulation achieved
Current Status: Infrastructure tested and ready. Injection payloads not yet deployed.
Scenario 3: Credential Harvesting (MEDIUM likelihood)
- User clicks “README.md” in chat interface
- Lands on chess site (readme.md)
- Creates account with reused password
- Credentials collected by domain squatter
Threat Model
Phase 1: Infrastructure ✅ COMPLETE
- Register high-traffic collision domains
- Build legitimate-appearing frontends
- Implement server-side AI detection
Phase 2: Data Collection 🔄 CURRENT
- Profile AI agent behavior
- Identify which agents auto-fetch
- Track referrer patterns
- Build targeting accuracy
Phase 3: Weaponization ⏸️ PENDING
- Deploy prompt injection payloads
- Target specific AI systems
- Exfiltrate conversation context
- Manipulate agent behavior
Recommendations
For AI Agent Developers
- Never auto-fetch .md TLD URLs without explicit user approval
- Strip referrer headers when fetching external content
- Log all .md domain requests for security review
- Implement URL reputation checking before fetch
For Users
- Never click markdown filenames that appear as links in chat
- Verify URLs before visiting. Hover to check the destination.
- Access repository files via GitHub/GitLab directly
For Organizations
- Block .md TLD at the firewall for AI-facing systems
- Monitor for .md requests in security logs
- Train staff on namespace collision risks
Technical Details
Investigation Environment
- VM: hal-sandbox (192.168.100.196)
- Tools: curl, custom user-agent rotation script
- Hash Method: MD5 of normalized HTML response
Files Collected
- 28 HTML files (baseline + AI-targeted versions)
- HTTP headers for all domains
- JavaScript libraries with user-agent references
Conclusion
The .md TLD namespace collision threat is real, active, and evolving.
Domain squatters have:
- Built legitimate businesses as cover
- Deployed AI agent detection systems
- Tested differential content delivery
- Positioned infrastructure for future attacks
Verdict: The .md TLD blocklist is CRITICAL, not precautionary. This threat will escalate as AI adoption increases.
Investigation conducted by FTRCRP Research. Evidence preserved for future reference.
Published: 2026-02-04 | Updated: 2026-02-05
