关键漏洞信息 漏洞标题 Improper Validation of Password Reset Verification Code 严重性 High 报告人 karieddine 报告日期 12/15/2024 状态 Closed and Remediated 概要 在Touch移动应用程序的密码重置机制中发现了一个关键漏洞,由于密码重置过程中使用的验证码验证不当,允许攻击者绕过验证码检查,重置任何账户的密码,前提是他们知道有效的用户名。 影响 Account Takeover: 攻击者可以重置任何他们知道用户名的账户的密码,绕过验证码步骤。 Cascading Compromises: 攻击者可能触发用户设备上的通知和通过MFA疲劳进行eSIM交换。 攻击者可以代表用户添加和删除服务或从应用程序发送免费短信。 根本原因 验证码在密码重置过程中验证不当: - 系统不确保用户输入的代码与发送到注册电子邮件或电话号码的代码匹配。 - 验证码缺乏过期或重复使用,允许攻击者绕过过程。 - 系统可能允许无效或过期的代码用于重置密码。 推荐措施 1. 正确的验证码验证:确保用户输入的验证码与发送到注册电子邮件或电话号码的验证码完全匹配;实现验证码过期;立即使验证码失效。 2. 速率限制和暴力防护:实施密码重置尝试的速率限制;引入CAPTCHA或其他反机器人机制。 3. 账户枚举缓解:显示通用错误消息,防止攻击者基于系统响应确定用户名是否存在。 4. 增强的电子邮件和2FA安全:加强2FA机制;对围绕电子邮件账户密码重置实施更严格的控制。 5. 日志记录和警报:记录所有失败的密码重置尝试;针对异常模式的密码重置活动实施警报。 风险评估 由于此漏洞允许账户接管,因此被认为是高风险。利用此漏洞可能导致重大财务、个人和声誉损害。 参考 Touch Lebanon Mobile App 产品供应商 Touch Mobile Application and Website Backend 受影响的产品代码库 2.20.2