Created
November 18, 2025 08:51
-
-
Save Rycarl-Furry/3e93c6f0d48a29518adf341e0fc7e2dd to your computer and use it in GitHub Desktop.
CVE-2025-63807: Weak Verification Code Generation and Missing Rate Limiting in Blogin (university-bbs)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # CVE-2025-63807: Weak Verification Code Generation and Missing Rate Limiting in Blogin | |
| ## 1. 漏洞概述 | |
| 在开源项目 [weijiang1994/Blogin](https://github.com/weijiang1994/Blogin)中,密码重置确认接口 `/reset-confirm/` 存在严重安全缺陷: | |
| - 验证码使用**密码学上不安全的随机数生成器**(CWE-338) | |
| - **缺少频率限制**(rate limiting)和会话绑定机制 | |
| 攻击者可无需身份验证,通过暴力猜测验证码,实现**账户接管**(Account Takeover)。 | |
| ## 2. 影响版本 | |
| 所有截至以下提交的版本均受影响: | |
| - **Commit**: `e0448921ca80ef5d31f1472b6f2258689bdaa64d` | |
| - **Date**: 2025-11-18 | |
| > 项目仓库:https://github.com/weijiang1994/Blogin | |
| ## 3. 漏洞细节 | |
| ### 受影响组件 | |
| - 文件:`blogin/blueprint/front/auth.py` | |
| - 接口:`POST /reset-confirm/` | |
| ### 攻击场景 | |
| 1. 攻击者触发密码重置流程(获取目标邮箱) | |
| 2. 直接向 `/reset-confirm/` 发送大量 POST 请求,尝试不同验证码 | |
| 3. 由于验证码空间小(6 位数字)且无尝试次数限制,可在短时间内爆破成功 | |
| 4. 成功后可设置新密码,完全接管账户 | |
| ### 根本原因 | |
| - 使用 `random` 等非安全模块生成验证码 | |
| - 未对同一邮箱/IP 的验证码请求进行速率限制 | |
| - 验证码未与用户会话或一次性令牌绑定 | |
| ## 4. 修复建议 | |
| 1.对请求速率限制 | |
| 2.校验token | |
| 3.使用更安全复杂的随机数 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment