CVE-2025-67720Pyrofork是一个现代化的异步MTProto API框架,用于与Telegram进行交互。该框架在2.3.68及之前版本中存在严重的路径遍历(Path Traversal)漏洞。漏洞源于download_media方法在处理从Telegram服务器接收的文件名时缺乏充分的输入验证。当用户使用默认配置下载媒体文件时,该方法会直接使用Telegram消息中携带的file_name属性值来构建本地文件路径。攻击者可以通过发送带有恶意构造文件名的媒体消息(如包含../的路径遍历序列)来触发漏洞,从而在目标系统的任意目录中创建或覆盖文件。此漏洞可能导致服务器配置被篡改、持久化恶意代码或敏感数据被覆盖等严重后果。由于CVSS评分达到6.5(MEDIUM),且攻击复杂度较低,漏洞在实际环境中具有较高的利用风险。建议受影响的用户尽快升级到2.3.69或更高版本。
漏洞存在于Pyrofork框架的download_media方法中。该方法在处理文件下载时,采用以下逻辑:当用户未指定自定义文件名时,方法会回退使用Telegram消息对象的file_name属性。file_name属性来源于Telegram的DocumentAttributeFilename字段,该字段完全由消息发送者控制。攻击者可以构造包含路径遍历序列(如../)的文件名,例如../../../etc/cron.d/malicious,当框架将此文件名直接拼接到下载目录路径时,会导致文件被写入到预期目录之外的位置。漏洞利用的关键在于:1)用户使用默认配置下载媒体;2)攻击者发送带有恶意文件名的媒体消息;3)框架未对file_name进行路径规范化或安全检查。修复版本2.3.69通过引入文件名清理机制来解决此问题,使用os.path.basename()等方法确保文件名不包含路径遍历字符。