Oracle PeopleSoft:ShinyHuntersが悪用したRCE(CVE-2026-35273)
PeopleTools 8.61および8.62の認証不要RCE。PSEMHUBへのSSRF連鎖によるもので、ShinyHuntersにゼロデイとして悪用され、6月10日のOracleアラートで修正済みです。
要点
CVE-2026-35273は、Oracle PeopleSoftの認証不要のリモート乗っ取りです。ゼロデイとして悪用され、修正の数か月後にも再び悪用されました。
- Zero Day Initiativeが報告した3つの欠陥が1つの連鎖として機能します。Integration Gateway(PSIGW)のSSRF、Environment Management Hub(PSEMHUB)がデフォルトで信頼するループバックアドレス、そしてPSEMHUB内の2つのコード実行経路です。Oracleは2026年6月10日のセキュリティアラートで、3つすべてを単一のCVEとして修正しました。
- PeopleSoft Enterprise PeopleTools 8.61と8.62が、サポート対象の影響バージョンです。CVSS v3.1 9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H、Oracle採点)。
- ShinyHunters(MandiantとGoogle Threat Intelligence Groupの追跡名UNC6240)は、2026年5月27日から6月9日まで、主に大学を標的にこの連鎖をゼロデイとして悪用し、9月には高等教育、テクノロジー、ITサービス、医療、農業、運輸、政府に広がる、より広範な波で再び悪用しました。CISAは6月12日にKEVカタログへ追加しました。
- Oracleの6月10日のセキュリティアラートのパッチを適用し、サポート対象のPeopleToolsリリースを使い続けてください。それまでの間、Environment Management Hubを無効化または削除してください。パッチは扉を閉めますが、既に内部にいる攻撃者を排除するものではありません。
影響を受けますか?
次の2つが両方成り立つ場合に影響を受けます。
- デプロイメントがPeopleSoft Enterprise PeopleTools 8.61または8.62(CVEレコードが影響対象とするサポート対象の2リリース)を実行していること。サポート対象外の古いPeopleToolsリリースを実行している場合、Oracleのアラートは、そうしたリリースはこの脆弱性についてテストされておらず、影響を受ける可能性が高いとしています。連鎖は存在するとみなし、サポート対象リリースへの移行を計画してください。
- Integration GatewayとEnvironment Management Hubがデプロイされていること(Environment Management Frameworkのデフォルト構成です)。両者は別個のOracle WebLogicアプリケーションとして動作し、連鎖には両方が必要です。PSEMHUBに到達するためのPSIGWと、コードを実行するためのPSEMHUBです。
PeopleToolsのリリースはPeopleSoft管理者またはMy Oracle Supportで確認し、次に連鎖が必要とする2つのパスを確認します。どちらもログインを要求しません。Integration Gatewayは入口なので、ネットワークの外からテストします。Environment Management HubはPeopleSoftサーバー自体からテストします。連鎖はゲートウェイ経由でループバックアドレスからHubに到達するため、露出していなくても、デプロイされているだけで十分だからです:
# From a network outside your perimeter: the entry point should be unreachable
curl -s -o /dev/null -w "%{http_code}\n" https://<your-peoplesoft-host>/PSIGW/HttpListeningConnector
# On the PeopleSoft web server itself: any response means the Hub is deployed
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:<pia-port>/PSEMHUB/hub
1つ目のテストでは、タイムアウトまたは接続拒否以外の応答は、入口が露出しており下記の露出判断が必要なことを意味します。2つ目のテストでは、何らかの応答があればHubがデプロイされています。偽造リクエストはサーバー自身から送られるため、/PSEMHUB/に対する境界ルールだけでは連鎖を止められません。下記のとおりHubを無効化または削除してください。
| ブランチ | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| PeopleTools 8.61 | 8.61(サポート対象リリース) | Oracleセキュリティアラートのパッチ、2026年6月10日 |
| PeopleTools 8.62 | 8.62(サポート対象リリース) | Oracleセキュリティアラートのパッチ、2026年6月10日 |
| より古いPeopleToolsリリース | Oracleによるテストなし。アラートによれば影響を受ける可能性が高い | パッチなし。サポート対象リリースへ移行し、アラートのパッチを適用する |
Oracleのセキュリティアラートがパッチと正確なバージョンマトリクスの一次情報です:https://www.oracle.com/security-alerts/alert-cve-2026-35273.html
Mandiantの2026年6月のレポートによると、同社は脆弱な可能性のあるエンドポイントに対応するIPアドレスを持つ世界中の100以上の組織に通知しました。そのうち68%が高等教育機関でした。
どう修復しますか?
2026年6月10日のOracleセキュリティアラートのパッチを、通常のPeopleSoftパッチ適用手順で適用し、サポート対象のPeopleToolsリリースを使い続けます。Mandiantの9月のレポートは、WAFルールとパスベースのブロックはパッチ適用の代替にならないと明言しています。
まだパッチを適用できない場合は、MandiantがOracleのセキュリティアラートのガイダンスに基づき、連鎖が必要とする露出を取り除く手順を示しています:
- マルチサーバー構成では、パッチ適用に使っていなければEnvironment Management Hub(EMHub)サービスを無効化します。シングルサーバー構成ではPSEMHUBアプリケーション全体を削除します。Mandiantによれば、これらの管理エンドポイントを制限しても、通常のユーザーセッションは壊れません。
- EMHubサービスを無効化できない場合は、ネットワーク境界またはファイアウォールで
/PSIGW/HttpListeningConnectorと/PSEMHUB/*への外部アクセスをブロックします。この連鎖を止めるのは/PSIGW/HttpListeningConnectorのルールです。偽造リクエストはサーバー自身からHubに届くため、境界を通過しません。/PSEMHUB/*のルールも依然として有効です。9月の波では、攻撃者が露出したHubに直接リクエストを送ることもあったためです。 - ルールは必ずデコード・正規化したパスに対して適用します。9月の波では、ShinyHuntersは
/%50SEMHUB/を要求することで/PSEMHUB/をブロックするWAFルールを回避しました。多くのルールはパスの平文に一致しますが、PeopleSoftサーバーはデコードしてページを提供します。Mandiantは、攻撃者がパーセントエンコード、大文字小文字の混在、その他の正規化されていない任意の変形を使い得ると警告しています。
既に侵害されている可能性がある場合は、ウェブシェルを持つホストを侵害されたものとして扱い、証拠を保全し、PeopleSoft層から到達できるすべての資格情報をローテーションします。ShinyHuntersはデータを盗み、その後支払いを要求するため、恐喝に備えてください。パッチは扉を閉めます。以下の情報源は、既に内部にいる者を排除すると主張するものではありません。
根本原因は何ですか?
OracleはEnvironment Management Hubを、ループバックアドレスをデフォルトで信頼するホスト許可リストの背後に置き、一方でIntegration Gatewayが任意のリクエストを任意のURLへ転送できるままにしました。両者が組み合わさると、壁が扉になります。
ZDIのBobby Gouldが、TrendAI ResearchのMinh GiangおよびLucas Millerとともに、2026年6月10日にこの連鎖をOracleへ報告し、10月27日に内訳を公開しました。2つのコンポーネントにまたがる3つの欠陥です:
欠陥1:PSIGWのSSRF(ZDI-CAN-31816)。 Integration Gatewayは、ListeningコネクタとTargetコネクタを介してPeopleSoftサーバーとリモートシステム間のメッセージを交換します。/PSIGW/HttpListeningConnectorへのPOSTでHttpTargetConnectorハンドラを指定すると、攻撃者はゲートウェイが接続するURLと、そこへ転送する完全なペイロード(リクエストのDataフィールド)の両方を選べます。ZDIがハンドラを逆コンパイルしたところ、トラフィックが正当か有効な宛先向けかの検証はありませんでした。攻撃者のリクエストから宛先URLを取り出し、リクエストオブジェクトを構築し、HTTPメソッドを適用し、攻撃者のコンテンツをそのまま送信します。
成立条件:PSEMHUBはデフォルトでループバックを信頼。 Environment Management Hubは、信頼されたホストのみに応答する内部管理インターフェイスです。そのvalidateClientメソッドは要求元クライアントを/envmetadata/config/allowedhosts.propertiesと照合します。PeopleSoftに同梱されるデフォルトのファイルには最初からlocalhostのエントリがあり、許可セットにはサーバー自身の解決済みホスト名とIPも含まれます。SSRF経由で127.0.0.1から到着したリクエストはマシン自身からのものに見え、信頼チェックを通過します。
欠陥2:PSEMHUBのファイルパス外部制御(ZDI-CAN-31818)。 PSEMHUBのExecuteProcessActivityCommandハンドラは、リモートクライアントがサーバーのファイルシステムへログエントリを書き込めるようにするものです。呼び出し側は、m_lineパラメータのファイル内容と、m_targetFileパラメータのディスク上の絶対パスの両方を制御します。ハンドラはパスが正当なログディレクトリを指すかの検証を行いません。PSEMHUB WARのパスへJSPウェブシェルを書き込むと、PeopleSoftサービスアカウントとして即座にコード実行が可能になります。
欠陥3:PSEMHUBの信頼できないデータのデシリアライズ(ZDI-CAN-31817)。 任意のファイル書き込みプリミティブを使い、攻撃者は[docroot]/envmetadata/data/environment/の中に悪意のあるXMLファイルを配置します。次にPSEMHUBのHubServletクラスが初期化されるとき(システムまたはサービスの再起動後)、そのディレクトリのすべてのファイルをロードし、それぞれをJavaのXMLDecoderに渡します。XMLDecoderは解析中にXMLに記述されたオブジェクトをインスタンス化して設定するため、攻撃者のペイロードはEnvironmentへのキャストが例外を投げる前に実行されます。この経路はウェブシェルを必要とせず、標準的な検出に捕捉されにくくなります。
どのように悪用されますか?
連鎖全体が認証不要です。連鎖の中でPeopleSoftログインを要求する箇所はありません。ZDIの分析に沿ったステップごとの説明:
- 攻撃者は
/PSIGW/HttpListeningConnectorにPOSTし、HttpTargetConnectorハンドラを指定し、宛先をループバックアドレス(例:http://127.0.0.1:8000)に設定し、内部リクエストをDataフィールドに入れます。 - Integration Gatewayがその内部リクエストをループバック宛先へ転送します。マシン自身から発信されたように見えてPSEMHUBに到着します。
validateClientが要求元をallowedhosts.propertiesと照合し、デフォルトのリストにループバックアドレスを発見してtrueを返します。- 攻撃者はSSRFを通じてPSEMHUBのコマンドハンドラに到達し、
ExecuteProcessActivityCommandを呼び出して、m_lineにウェブシェルの内容、m_targetFileにPSEMHUB WAR内の絶対パスを与えます。 - ウェブシェルがアプリケーションディレクトリに書き込まれ、それへのリクエストがPeopleSoftサービスアカウントとしてコマンドを実行します。あるいは同じ書き込みプリミティブで
envmetadata/data/environment/にXMLファイルを仕込み、次回のサービス再起動時にXMLDecoder経由でペイロードを実行します。発見すべきウェブシェルはありません。
観測されたキャンペーンでは攻撃者はさらに進みました。Mandiantの6月のステージングサーバーのトリアージでは、Microsoft Azureサービスに偽装したMeshCentralエージェントと、横移動・改ざんスクリプトが発見され、被害者から盗まれたデータがShinyHuntersのデータリークサイトに現れました。9月の波では、MandiantはPSEMHUB WARに書き込まれたx.jspやu.jspなどのJSPウェブシェル、SIDEEYEバックドアを含むトロイの木馬化されたインストーラー、ディスクに何も書き込まないファイルレスのコマンド実行を確認しています。
攻撃の連鎖はどう進みますか?
認証されていないインターネット上の位置から、PeopleSoftサービスアカウントとしてのコード実行まで、単一のリクエスト連鎖です:
/PSIGW/HttpListeningConnector"] --> B["HttpTargetConnectorがペイロードを
127.0.0.1へ転送"] B --> C["PSEMHUBのvalidateClientがallowedhosts.propertiesで
ループバックを発見"] C --> D["ExecuteProcessActivityCommandが攻撃者の内容を
攻撃者のパスに書き込み"] D --> E["PSEMHUB WAR内のウェブシェルが
PeopleSoftアカウントで実行"] C --> F["envmetadata/data/environment/に
悪意のあるXML"] F --> G["次回再起動時に
XMLDecoderが実行"] style C fill:#f8d7da
攻撃者は何ができますか?
悪用に成功すると、PeopleSoftウェブ層でPeopleSoftサービスアカウントの権限による認証不要のリモートコード実行が得られます。Mandiantによれば、このアカウントはPeopleSoftの設定ファイル、データベース接続文字列、アプリケーションデータを読み取ることができ、UNC6240はこの足がかりを資格情報のスプレー攻撃、横移動、データ窃取、恐喝に利用しました。必要な条件:
- PSIGWのリスニングコネクタへのネットワークアクセスと、それを経由したPSEMHUBへのアクセス。PeopleSoftの資格情報もユーザー操作も不要です。
- デフォルト構成のままのEnvironment Management Framework。PSEMHUBが存在し、
allowedhosts.propertiesにループバックエントリが残り、PSIGWのHttpListeningConnectorが到達可能であること。 - デシリアライズ経路についてのみ、XMLファイルが仕込まれた後のサービスまたはシステムの再起動。
なぜ修正が有効なのですか?
Oracleの2026年6月10日のセキュリティアラートは、3つの欠陥すべてを単一のCVEの下で修正しました。ZDIは、それぞれに個別のCVEを割り当てるようOracleと調整中だと報告しています。OracleのアラートもZDIの記事もソース差分を公開しておらず、3つの欠陥それぞれがどう閉じられたかも説明していません。
回避策は連鎖の構造から導かれます。ZDIが説明する2つのコード実行経路はどちらもPSEMHUB内にあるため、PSEMHUBを削除すればPSIGWのSSRFが残っていても公開された連鎖は断たれます。ただし、そのSSRFはループバックアドレス上の他のサービスには依然として到達できます。9月の波はブロックだけに頼る限界を示しています。攻撃者は/%50SEMHUB/でパスベースのルールに順応しました。だからこそMandiantは、パスベースのブロックはアラートのパッチの代替にならないとしています。
侵害されたかどうかを確認するには?
Mandiantの2026年6月と9月のレポートが、具体的なハントを示しています。2026年5月27日以降の期間について実行してください。
PIA WebLogicのアクセスログで、外部ソースIPからの/PSEMHUB/hubおよび/PSIGW/HttpListeningConnectorへのPOSTリクエストを検索します。正当なIntegration Brokerの連携先もリスニングコネクタにPOSTするため、各送信元を既知の連携先と照合してください。パッチ適用日より前の未知の外部アドレスからの一致は、連鎖を示唆します。
9月の波では同じ攻撃が/%50SEMHUB/として現れ、ウェブシェルはその下の.jspファイルとして要求されるため、パスをデコードし、大文字小文字を区別せずに照合します:
# PIA WebLogic access log; decode the path first so /%50SEMHUB/ and other encoded forms match too
python3 -c 'import sys, urllib.parse; sys.stdout.writelines(urllib.parse.unquote(l) for l in open(sys.argv[1], errors="replace"))' <PS_CFG_HOME>/webserv/<domain>/servers/PIA/logs/PIA_access.log | grep -iE "POST /(PSEMHUB|PSIGW/HttpListeningConnector)|/PSEMHUB/[^ ]*\.jspx?"
最初に見つけたノードだけでなく、すべてのWebLogicノードのウェブ層ファイルシステムで、連鎖とウェブシェルが残すファイルを探します:
# JSP, JSPX and EXE files in the PSEMHUB and PORTAL WARs; flag any that are not part of the shipped product
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PORTAL.war \( -name "*.jsp" -o -name "*.jspx" -o -name "*.exe" \)
# XML files the deserialization path loads at the next restart; review any recently created or modified
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/envmetadata/data/environment -name "*.xml" -ls
# Unauthorized content in the hub's transactions directory
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/envmetadata/transactions
# Unexpected logs, persistantstorage or scratchpad directories under PSEMHUB
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war -type d \( -name logs -o -name persistantstorage -o -name scratchpad \)
次に、Mandiantが公開したインジケータ(大半は6月に攻撃者のステージングサーバーから復元されたもの):
meshagent32-azure-ops.exe、meshagent64-azure-ops.exe、meshagent64-v2.exeという名前のMeshCentralエージェントバイナリ。コマンド&コントロールアドレスwss://azurenetfiles.net:443/agent.ashxがハードコードされており、Microsoft Azure NetApp Filesを装うドメインです。- ステージングIPアドレス142.11.200.186~142.11.200.190(ポート8888でPython SimpleHTTPサーバーを稼働)、および、ステージングサーバーがSSHで接続したShinyHuntersデータリークサイトの公開ミラーである176.120.22.24。
- 被害者の名前にちなんだ横移動・改ざんスクリプト
[victim_abbreviation]_fanout.sh。 - ファイアウォールログとNetFlowデータにおける、PeopleSoftサーバーから信頼できない外部宛先へのSMBトラフィック(TCPポート445)。
- 9月のレポートから:SIDEEYEのコマンド&コントロールアドレス162.219.30.165(TCPポート3333および3334)と、
azurenetfiles.net、microsoft-entra.net、enroll.azuredevice.cloud、winmanage-me.network(104.219.234.138)上のMeshAgentインフラ。
タイムライン
- 2026-05-27~2026-06-09:ShinyHunters(UNC6240)が、修正もアドバイザリも存在しない時期にこの連鎖をゼロデイとして悪用。主に大学が標的。攻撃者のステージング環境は5月27日22:14 UTCに構築されました(Mandiant/GTIG)。
- 2026-06-09:侵害された組織の盗難データがShinyHuntersのデータリークサイトに出現。公開報道がステージングサーバー上のオープンなディレクトリを暴露。
- 2026-06-10:ZDIが3つの欠陥をOracleに報告。Oracleが帯域外セキュリティアラートを公開し、3つすべてをCVE-2026-35273として修正。
- 2026-06-11:CVEレコードがCVSS v3.1 9.8のベクトルとともに公開。MandiantとGTIGが帰属を公開し、100以上の組織(68%が高等教育)に通知済みと報告。
- 2026-06-12:CISAがCVE-2026-35273をKEVカタログに追加。連邦機関の期限は2026年6月15日。
- 2026-09-25:Mandiantが、
/%50SEMHUB/のWAF回避を使う新たな大規模悪用の波を報告。高等教育、テクノロジー、ITサービス、医療、農業、運輸、政府にわたり、世界中の数十のシステムにウェブシェルが設置されました。 - 2026-10-27:ZDIが単一CVEの3欠陥の内訳を公開。各欠陥の個別CVEはOracleと調整中。
- 2026-10-29:本記事。
よくある質問
ファイアウォールでPSEMHUBのパスをブロックすれば十分ですか?
いいえ。Mandiantは、パスベースのブロックはパッチの代替にならないと明言しており、9月の波がその通りになったことを証明しました。攻撃者は/%50SEMHUB/を要求し、平文のパスに一致するルールを回避しました。PeopleSoftはパスをデコードしてページを提供するためです。ブロックはパッチまでの助けであり、ルールはデコード形を扱う必要があります。
パッチの適用は、既に内部にいる攻撃者を排除しますか?
そう主張する情報源はありません。Oracleのアラートは排除に言及しておらず、PeopleSoft層から到達できるすべての資格情報をローテーションしウェブシェルを探せというMandiantのガイダンスは、攻撃者が残ることを前提にしています。パッチを適用した後、ホストをインシデントとして扱ってください。
攻撃されたのは教育分野だけですか?
6月の波はそこに集中していました。Mandiantが通知した100以上の組織のうち68%が学術機関でした。9月のMandiantレポートは、高等教育、テクノロジー、ITサービス、医療、農業、運輸、政府に広がる、より広範な波を記述しており、世界中の数十のシステムにウェブシェルが設置されました。
これは1つの脆弱性ですか、3つですか?
3つです。ZDIはPSIGWのSSRF(ZDI-CAN-31816)、PSEMHUBのファイルパス制御(ZDI-CAN-31818)、PSEMHUBのデシリアライズ(ZDI-CAN-31817)を別個の脆弱性として報告し、Oracleは6月の単一CVEの下で3つすべてを修正しました。ZDIは、それぞれに個別のCVEを割り当てるようOracleと調整中です。
より古いPeopleToolsリリースを実行しています。影響を受けますか?
CVEレコードとOracleのアラートは、サポート対象リリースである8.61と8.62を影響対象としています。アラートによれば、Premier SupportまたはExtended Supportの対象外のリリースはテストされておらず、影響を受ける可能性が高いため、連鎖は存在するとみなし、サポート対象で修正済みのリリースに移行してください。
Ostorlabで露出したPeopleSoftエンドポイントを発見する
Ostorlab Attack Surface Discoveryを使い、保有するインターネット公開ホストを棚卸しして、露出したPeopleSoft Integration GatewayとEnvironment Management Hubのエンドポイント、この連鎖が必要とする/PSIGW/HttpListeningConnectorと/PSEMHUB/のパスを見つけ、どちらも境界の外から到達できないことを確認してください。
参考資料
- ZDI、Bobby Gould「CVE-2026-35273: SSRF to RCE in Oracle PeopleSoft」2026年10月27日:3欠陥の内訳、validateClientの分析、PSIGWリクエストとハンドラの動作、両方のコード実行経路:https://www.zerodayinitiative.com/blog/2026/10/20/cve-2026-35273-ssrf-to-rce-in-oracle-peoplesoft (2026年10月29日確認)
- OracleセキュリティアラートCVE-2026-35273、2026年6月10日:パッチ、影響バージョン8.61と8.62、CVSS 9.8のリスクマトリクス、報告者のクレジット、サポート対象外リリースに関する注記:https://www.oracle.com/security-alerts/alert-cve-2026-35273.html (2026年10月29日確認)
- CVE-2026-35273レコード:PeopleTools 8.61と8.62が影響対象、CVSS v3.1 9.8、Oracle CNA:https://cveawg.mitre.org/api/cve/CVE-2026-35273 (2026年10月29日確認)
- CISA KEVカタログ:CVE-2026-35273は2026年6月12日追加、連邦機関の期限2026年6月15日、BOD 26-04に基づく必要な対応:https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-35273 (2026年10月29日確認)
- MandiantおよびGoogle Threat Intelligence Group「ShinyHunters Targets Education Sector with Oracle PeopleSoft Exploit」2026年6月11日:5月27日~6月9日のゼロデイ帰属、68%が高等教育の100以上の通知組織、ステージングサーバーのインジケータ、MeshCentralエージェント、修復・ハントのガイダンス:https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-targets-education-sector-oracle-exploit (2026年10月29日確認)
- MandiantおよびGoogle Threat Intelligence Group「ShinyHunters Renewed Mass Exploitation Campaign Targeting Oracle PeopleSoft」2026年9月25日:他業種へ拡大した波、
/%50SEMHUB/のWAF回避、ウェブシェルとSIDEEYEのインジケータ、更新されたハントと資格情報ローテーションのガイダンス:https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-renewed-mass-exploitation-campaign-targeting-oracle-peoplesoft (2026年10月29日確認)