🇰🇷 한글 설명
fast-mcp-telegram의 30.1 미만 버전에서 발생하는 SSRF 취약점입니다. URL 검증 시 DNS 해석을 수행하지 않고 호스트 이름 문자열만 확인하기 때문에, 로컬 또는 내부 네트워크 주소로 연결되는 호스트를 통해 내부 데이터를 탈취할 수 있습니다. 공격자는 이를 통해 내부 리소스의 내용을 텔레그램 파일 첨부 형태로 읽어낼 수 있습니다.
💡 쉬운 설명
서버가 외부 파일을 가져올 때 주소가 안전한지 확인하는 과정에 허점이 있어, 공격자가 서버 내부의 비밀 정보를 몰래 빼낼 수 있는 문제입니다. 공격자는 가짜 주소를 이용해 서버가 자기 자신이나 내부 네트워크에 접속하도록 유도합니다.
🇺🇸 원문 (English)
fast-mcp-telegram is a Telegram MCP Server. Prior to version 30.1, the send_message/send_message_to_phone MCP tools accept files as a list of http(s) URLs, which the server downloads and attaches to the outgoing Telegram message. Downloads are guarded by _validate_url_security, an SSRF denylist that checks the URL's literal hostname string but never resolves DNS. The fetch (httpx.AsyncClient.get) does its own resolution at request time. Consequently a hostname that resolves to a loopback / private / link-local address passes the guard and is fetched — even with the secure defaults block_private_ips=True and allow_http_urls=False. Because the fetched body is returned to the attacker as a Telegram file attachment, this is a full-read, exfiltrating SSRF, not blind. This issue has been patched in version 30.1.
📍 영향받는 시스템
fast-mcp-telegram version < 30.1
⚔️ 공격 벡터
DNS Rebinding 또는 내부 IP를 가리키는 호스트명을 이용한 SSRF 공격
🛡️ 대응 방법
fast-mcp-telegram을 버전 30.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 30.1 미만인 경우 취약한 상태입니다.
pip show fast-mcp-telegram | grep Version