事件经过
fast-mcp-telegram文件URL下载器中的SSRF拒绝列表可被绕过,因为它只验证字面主机名字符串;攻击者可以提供解析到回环或私有地址的域名(在测试中使用模拟getaddrinfo演示了localtest.me → 127.0.0.1和internal-service.local → 10.x)。已在30.1中通过添加DNS解析验证修复。
影响分析
Telegram MCP服务器通常在分析师/运维机器上运行,这些机器可网络访问内部基础设施;通过智能体可调用的MCP工具可达的SSRF允许恶意提示或已攻陷智能体从工具服务器转向内部服务和云元数据端点。
攻击途径
send_message工具接受一个文件URL列表,服务器获取这些URL并附加到外发Telegram消息中;_validate_url_security阻止字面localhost/私有字符串,但未解析可解析到127.0.0.1或10.x.x.x的域名(例如localtest.me → 127.0.0.1),从而允许SSRF访问内部服务和云元数据。
受影响系统
leshchenko1979/fast-mcp-telegram < 30.1(send_message / send_message_to_phone工具)
缓解措施
升级到fast-mcp-telegram >= 30.1(提交e6b3032),该版本添加socket.getaddrinfo DNS解析检查,使URL验证匹配解析后的地址,而不仅仅是主机名字符串。