CVE-2025-66910CVE-2025-66910是Turms即时通讯服务器中的一个高危安全漏洞,影响v0.10.0-SNAPSHOT及更早版本。该漏洞存在于Turms Server的管理员认证系统中,具体表现为BaseAdminService类在优化认证性能时,将管理员密码以明文形式缓存在AdminInfo对象内。当管理员成功登录后,原始密码未经任何加密处理即被存储在内存的rawPassword字段中。攻击者若获得目标系统的本地访问权限,可通过内存转储、堆分析或附加调试器等技术手段直接提取这些明文密码,从而绕过bcrypt哈希保护机制。此漏洞的CVSS评分为6.0,属于中等严重程度,但由于涉及管理员凭据的泄露,可能导致整个服务器被攻击者完全控制。建议受影响的用户尽快升级到最新版本或采取临时缓解措施。
Turms Server的BaseAdminService类在处理管理员认证时,为了提升认证性能,采用了密码缓存机制。在AdminInfo.java的第34行,定义了rawPassword字段用于存储原始密码。当管理员执行登录操作时,系统首先通过bcrypt验证密码的正确性,验证成功后直接将原始密码字符串存储在AdminInfo对象的rawPassword字段中。这种设计虽然提高了后续认证的效率,但违反了安全最佳实践。安全研究员发现,攻击者可以通过以下方式利用此漏洞:1)获取目标系统的本地访问权限;2)执行进程内存转储(如使用procdump、gcore等工具);3)分析转储文件中的堆数据,定位AdminInfo对象;4)提取rawPassword字段中的明文密码。由于密码以明文形式存在于内存中,攻击者无需进行任何密码破解操作即可直接获取有效的管理员凭据。成功利用此漏洞后,攻击者可以登录管理后台,进一步控制整个Turms服务器。相关漏洞代码位于turms-server-common/src/main/java/im/turms/server/common/domain/admin/service/BaseAdminService.java的第237行附近。