mt 发表于 2021-9-6 19:52:18

Discuz! X & UCenter出现高风险安全漏洞

近日,Discuz!安全中心监测到一个UCenter的高风险安全问题,可能会导致部分站点无法正确统计登录失败次数,导致站点存在被密码爆破的风险。通过特殊配置或设计的程序可以通过无限次数破解密码的方式非法控制账号。

漏洞详情
在 Discuz! X3.2 Release 20141225 版本以及同期发布的 UCenter 软件中,开发了一个部分生效的 “允许用户登录失败次数” 功能,但此功能未完整开发之后仅仅注释了界面上的功能项,后续版本也没有继续开发,导致部分站点的 login_failedtime 在 UCenter 后台基本设置处保存时被设置成 0 ,而由于不同功能项对 0 的处理方式有差异导致系统内对此情况的处理手段是不记录登录失败次数而在提示信息中固定返回 4 次,导致漏洞发生,所以如果你的网站输错密码不管多多少次都提示还可以尝试4次,那么请立即更新修复。

Discuz! X安装时,默认不会触发这个漏洞,只有当管理员进入UCenter,设置保存UCenter设置时,才会导致login_failedtime被设置为0,从而触发漏洞。

风险等级


影响版本
Discuz! X 2014年12月25日 至 2021年6月28日 之间的所有版本(X3.2、X3.3、X3.4、X3.5)单独使用UCenter的用户请参照上述日期比对文件。
修复方法:1.在uc_server/view/default/admin_setting.htm 中的73行和81行附近,找到类似 <!-- 和 --> 的2行,并删掉。
    <!--
                                        <tr>
                                                <th colspan="2">{lang setting_user_failedtime}:</th>
                                        </tr>
                                        <tr>
                                                <td><input type="text" class="txt" name="login_failedtime" value="$login_failedtime" /></td>
                                                <td>{lang setting_user_failedtime_comment}</td>
                                        </tr>
                                        -->就是删除掉71行的<!--和81行的-->,使中间的内容起作用。
2.进入UCenter后台,找到允许用户登录失败次数的设置项并改成5,保存即可。
页: [1]
查看完整版本: Discuz! X & UCenter出现高风险安全漏洞