CVE-2026-39415Frappe LMS 学习管理系统在 2.46.0 之前的版本中存在严重设计缺陷。由于系统过度依赖客户端计算测验分数,导致学生可以通过浏览器开发者工具在提交请求前篡改分数。尽管该漏洞不会导致权限提升或数据泄露,但它严重破坏了系统的数据完整性和学术结果的可靠性。攻击者利用此漏洞可轻易伪造满分记录,影响评估结果的有效性。
该漏洞的核心在于服务器端未对关键业务数据进行二次校验,直接信任了来自客户端的分数数据。正常情况下,测验分数应由服务器端根据用户提交的答案与数据库中的标准答案进行比对计算得出。然而,Frappe LMS 在受影响版本中,将分数计算逻辑放在了前端 JavaScript 中执行。当用户点击提交时,浏览器会将计算好的分数打包发送给服务器。攻击者只需利用浏览器的开发者工具(如 Chrome DevTools),在“Network”选项卡中拦截提交请求,或在“Console”中修改负责存储分数的 JavaScript 变量,即可将分数任意修改为高分甚至满分。服务器收到请求后,未进行逻辑校验便直接存入数据库,从而实现了对业务逻辑的攻击。这是一种典型的客户端信任漏洞(Client-Side Trust)。