サイト内の現在位置

Atlassian Confluenceに見つかったリモートから任意のコードを実行可能な脆弱性(CVE-2022-26134)の検証

NECセキュリティブログ

2022年6月27日

NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの松本康平(共著者:榊龍太郎、松本隆志)です。現地時間で2022年6月2日に new windowAtlassianがConfluence ServerおよびData Centerの脆弱性(CVE-2022-26134)を公開しました。また、new windowインターネット上ではこの脆弱性の解説やPoCコードが公開されています。私たちのチームでも、この脆弱性についてPoCコードの検証、および回避策の検証を行いましたので、本ブログにて紹介します。

CVE-2022-26134の概要

CVE-2022-26134は、OGNL(Object Graph Navigation Language)インジェクションに関する脆弱性で、リモートから任意コード実行が可能です。OGNLはJavaオブジェクト用のオープンソースのExpression Language(EL)です。悪意のある入力をチェックしていない場合、攻撃者は任意のコードを実行することができます。OGNLインジェクションは2017年頃に話題となったApache struts2の脆弱性(CVE-2017-5638)の原因となった攻撃手法として知られています。

new windowConfluenceとは、チームのタスクやナレッジを一元管理するための機能を提供するツールです。ConfluenceのConfluence Data Center、Confluence Serverについて脆弱性が報告されています。なお、Confluence Cloud(クラウドサービス版)は CVE-2022-26134の脆弱性には含まれていません。

本脆弱性を再現する環境とPoCの検証

今回の検証で使用した環境は、Windows10端末にインストールしたVMware Workstation 15 Pro にて、Ubuntu 22.04 LTSのVMを起動し、その中でConfluence ServerのDockerコンテナを起動したものです。Docker関連のバージョンは下記の通りです。

  • Docker: Docker version 20.10.16, build aa7e414
  • Docker Compose: Docker Compose version v1.29.2
  • Docker images: atlassian/confluence-server ver.7.14.2、および7.18.0
  • Docker images: postgres ver.9.6

まずはConfluence Server 7.14.2に対し、実際に本脆弱性を悪用可能か確認しました。localhostの8090番ポートで起動しているConfluence Serverに対し、idコマンドを実行するように細工したリクエストを送信します。これに対するレスポンスを確認すると、細工したリクエスト内で設定したヘッダー「NEC-RIHT」に、idコマンドの実行結果「uid=2002(confluence) gid=2002(confluence) groups=2002(confluence) 」が付与されていることを確認できました。

PoC成功例

ここで重要な点は、ターミナルで実行したCurlコマンドにセッション情報が含まれていないことです。これは、Confluence Serverの認証情報なしで、idコマンドを実行できたことを示します。同様の事象は、Confluence Server 7.18.0でも確認できました。

本脆弱性への対応とその有効性検証

Atlassianは、Confluence Serverの一部バージョンに関して、本脆弱性の修正版を公開しています。

基本的な対策は、これらの修正版にアップデートすることです。しかし、事情により修正版にアップデートできない場合、別の対策を実施する必要があります。その方法として、上記のWebサイトでは、本脆弱性の原因となるファイルを置き換える手順が紹介されています。この手順は、Confluence Serverのバージョンが7.0.0~7.14.2の場合と、7.15.0~7.18.0の場合でそれぞれ異なります。当記事では、7.14.2および7.18.0の対策実施例をそれぞれ記載します。

■Confluence Serverのバージョンが7.0.0~7.14.2の場合

※Confluence Server 7.14.2で検証を行いました。

  • 1.
    以下のサイトから「xwork-1.0.3-atlassian-10.jar」「webwork-2.1.5-atlassian-4.jar」「CachedConfigurationProvider.class」をダウンロードします。
  • 2.
    以下の通り、Confluence Serverコンテナ内にある下記のファイルを置き換えます(いずれもデフォルトのファイルパスです)Atlassianによれば、この際置き換え前のファイルを削除するか、別フォルダに移動させることを推奨しています。
  • xwork-1.0.3-atlassian-10.jar
    置き換え前:/opt/atlassian/confluence/confluence/WEB-INF/lib/xwork-1.0.3.6.jar
    置き換え後:/opt/atlassian/confluence/confluence/WEB-INF/lib/xwork-1.0.3-atlassian-10.jar
  • webwork-2.1.5-atlassian-4.jar
    置き換え前:/opt/atlassian/confluence/confluence/WEB-INF/webwork-2.1.5-atlassian-3.jar
    置き換え後:/opt/atlassian/confluence/confluence/WEB-INF/webwork-2.1.5-atlassian-4.jar
  • CachedConfigurationProvider.class
    新たに/opt/atlassian/confluence/confluence/WEB-INF/classes/com/atlassian/confluence/setup/webworkというディレクトリを作成し、CachedConfigurationProvider.classを格納します。
  • 3.
    置き換え後/格納後のファイルと、新たに作成した「webwork」ディレクトリのパーミッションを適切に設定します。
パーミッション設定の例
  • 4.
    対策の有効性を検証します。Confluence Serverのサービスを再起動します。すると以下のように、細工したリクエストをConfluence Serverに送信しても、レスポンスには「NEC-RIHT」というヘッダーも、idコマンドの実行結果も表示されていないことがわかります。
対策済みのConfluence Server 7.14.2へのPoC失敗例

■Confluence Serverのバージョンが7.15.0~7.18.0の場合

※Confluence Server 7.18.0で検証を行いました。

  1. 以下のサイトから「xwork-1.0.3-atlassian-10.jar」をダウンロードします。
  • 2.
    以下の通り、Confluence Server コンテナ内にあるファイルを置き換えます(いずれもデフォルトのファイルパスです)。なお、Atlassianは置き換え前のファイルを削除するか、別フォルダに移動させることを推奨しています。
  • xwork-1.0.3-atlassian-10.jar
    置き換え前:/opt/atlassian/confluence/confluence/WEB-INF/lib/xwork-1.0.3-atlassian-8.jar
    置き換え後:/opt/atlassian/confluence/confluence/WEB-INF/lib/xwork-1.0.3-atlassian-10.jar
  • 3.
    置き換え後のファイルのパーミッションを適切に設定します。
パーミッション設定の例
  • 4.
    対策の有効性を検証します。Confluence Serverのサービスを再起動します。すると以下のように、細工したリクエストをConfluence Serverに送信しても、レスポンスには「NEC-RIHT」というヘッダーも、idコマンドの実行結果も表示されていないことがわかります。
対策済みのConfluence Server 7.18.0へのPoC失敗例

本脆弱性の悪用状況

本脆弱性は既に悪用例が報告されています。以下の記事では、2022年6月3日以降、4,000個のIPアドレスから68万回の攻撃試行があったことが書かれています。また、Confluence Serverがインストールされている端末をMirai等のマルウェアに感染させるための手段として、本脆弱性が悪用されていることを確認したとの記載があります。

さらに以下の記事では、Windows OSに対する攻撃試行や、細工したリクエストを難読化するケースも確認したとの記載があります。

まとめ

今回は、Atlassian Confluenceの脆弱性について紹介しました。この脆弱性を悪用することで、リモートから任意コードの実行が可能です。比較的簡単に悪用でき、なおかつPoCコードも簡単にインターネット上で探し出すことができるため、脆弱性が残った状態で、Confluenceを公開したままにすることは非常に危険です。一方で対策は比較的容易に実施できるため、速やかに実施することを推奨します。

参考資料

執筆者プロフィール

松本 康平(まつもと こうへい)
セキュリティ技術センター リスクハンティング・アナリシスグループ

所属:
サイバーセキュリティ戦略統括部
セキュリティ技術センター リスクハンティングチーム
経歴:
2017年に新卒入社、セキュア開発運用に関するドキュメント整備、リスクアセスメントに従事
2018年にIPA 中核人材育成プログラムにて制御システムセキュリティについて知見を獲得
2019年から現在まで、ペネトレーションテスト、脆弱性診断、インシデントレスポンス対応、セキュリティ関連のツール調査に従事
その他:
趣味は、愛犬・キャンプ・料理

執筆者の他の記事を読む

執筆者プロフィール

榊 龍太郎(さかき りゅうたろう)
セキュリティ技術センター リスクハンティング・システムグループ

ペネトレーションテスト、脆弱性診断を通じたセキュリティ実装支援、社内CTF運営、その他社内外向けのセキュリティ人材育成施策に従事。
2019年6月にIPA 産業サイバーセキュリティセンター中核人材育成プログラムを修了。
またインプレスグループが運営する技術解説サイト「ThinkIT」にて、RISS試験に関するWeb記事2件の執筆を担当。
new windowhttps://thinkit.co.jp/article/18849
new windowhttps://thinkit.co.jp/article/19367
CISSP/情報処理安全確保支援士(RISS) /GIAC GPEN/CEH/AWS認定クラウドプラクティショナーを保持。

執筆者の他の記事を読む

執筆者プロフィール

松本 隆志(まつもと たかし)
セキュリティ技術センター リスクハンティング・アナリシスグループ

マルウェア解析や攻撃者の行動分析などの業務を経て、現在はペネトレーションテスト、脆弱性診断などに従事。
これまでに Botconf や JSAC で講演。
趣味は、CTFとコーヒーを飲むこと。

執筆者の他の記事を読む

アクセスランキング