通过LearnDash中的作业泄露敏感信息。未经认证的访问者可以浏览和下载上传的作业。
任何人,包括未经认证的访问者,都可以看到所有上传的LearnDash作业。由于作业是公开的,任何知道此漏洞的人都可以读取上传的文档(可能导致GDPR事件)。该漏洞可在没有网站账户的情况下被利用。
LearnDash是WordPress的一个学习管理系统插件。
受影响版本的LearnDash(<=4.10.1)将上传的作业文件存放在没有访问保护的文件夹中。当用户上传作业文件时,LearnDash将其放入/wp-content/uploads/assignments/。文件保留其原始名称,但会加上上传时的帖子ID和Unix时间戳作为前缀。
LearnDash有三个REST API:/wp/v2/、/ldlms/v1/和/ldlms/v2/(目前为测试版)。所有API(包括测试版API)默认启用。可以使用learndash_rest_api_enabled过滤器(参见class-ld-rest-api.php)为特定文章类型禁用/ldlms/v1/和/ldlms/v2/ API。
任何人,包括未经认证的访问者,只需知道文件名即可下载任何上传的作业文件。
LearnDash在每个上传文件的名称后附加时间戳以增加猜测难度,但时间戳是可以暴力破解的。不幸的是,想要读取上传作业的未经认证访问者甚至不需要暴力破解任何文件名。受影响版本的LearnDash(<=4.10.1)通过REST API向未认证访问者发布所有已提交的作业。访问者只需在/wp/v2/ REST API上调用sfwd-assignment的端点。回复中包含上传文件的路径,访问者无需登录即可下载。
https://example.com/wp-json/wp/v2/sfwd-assignment
LearnDash 4.10.2于2024-01-08发布,解决了通过REST API泄露作业文件路径的问题。但CVE-2024-1208和CVE-2024-1210仍然存在。
LearnDash 4.10.3于2024-01-31发布,将文件存储位置移至受保护文件夹,并引入了动态下载链接以禁止未经授权的访问。
LearnDash处理漏洞报告得当,并在90天的负责任的披露窗口内解决了漏洞。