SAP NetWeaver ICM2SHELL:認証前RCE(CVE-2026-76964)
SAPの11月パッチデーは、ICMとWeb Dispatcherに認証前RCEを許すICM2SHELLと、さらに3件のCVSS 10.0の脆弱性を修正した。
要点
- ICM2SHELL は、SAPカーネルのWebSocket処理にあるメモリ破壊の脆弱性で、Internet Communication Manager(ICM)とSAP Web Dispatcherが共有するコードにあります。細工したWebSocketメッセージの連続により、プロセスがクラッシュするか、
<sid>admとしてコマンドが実行されます。 - SAP NetWeaver AS ABAPのカーネル7.40以降と、すべてのWeb Dispatcher(SAP HANA XSに組み込まれたものを含む)が影響を受けます。AS Javaは直接は影響を受けません。
- SAPはCVE-2026-76964、CVE-2026-89126、CVE-2026-89103、CVE-2026-120017をCVSS v3.1 10.0 クリティカルと評価しています。悪用は知られておらず、CISAも記録しておらず、2026年11月14日時点でいずれもKEVにありません。
- ICMとWeb DispatcherにはSAPノート3778530と3778556、ゲートウェイには3798345、SAML2には3849308を適用してください。修正済みカーネルパッチレベルは「修正方法」にあります。
影響を受けますか?
次の両方が当てはまる場合、ICM2SHELLの影響を受けます。
- SAPカーネル7.40以降でSAP NetWeaver AS ABAPを実行している、または任意のSAP Web Dispatcherを実行している。
- 攻撃者が、ICMまたはWeb Dispatcherが提供するHTTPまたはHTTPSポートに到達できる。
単体のWeb Dispatcherと、SAP HANA XS ClassicまたはXS Advancedに組み込まれたものを含め、すべてのWeb Dispatcherが該当します。SAP NetWeaver AS JavaはICM2SHELLの影響を受けません。デュアルスタック構成はABAPスタックを通じて影響を受けます。SAP Content Serverは影響を受けません。カーネル7.22は影響を受けません。
同じパッチデーには、別の露出条件を持つ3件の認証前脆弱性も修正されています。
- PROXYGATE(CVE-2026-89103) は、ABAP、AS Java、デュアルスタック、単体のゲートウェイを含め、SAPゲートウェイを実行するすべてのシステムに影響します。悪用可能かどうかはゲートウェイのプロキシポリシーで決まります。
- SAML2の脆弱性(CVE-2026-120017) は、SAPがノート3849308で説明する構成でSAML2サービスプロバイダーを使用するNetWeaver AS ABAPシステムに影響します。
| カーネルまたはコンポーネント | 影響を受けるリリース | 修正済みパッチレベル |
|---|---|---|
| SAPカーネルとWeb Dispatcher | 7.53 | 1616, 1617 |
| SAPカーネルとWeb Dispatcher | 7.54 | 710 |
| SAPカーネルとWeb Dispatcher | 7.77 | 914 |
| SAPカーネルとWeb Dispatcher | 7.93 | 401, 420 |
| SAPカーネルとWeb Dispatcher | 9.16 | 111 |
| SAPカーネル | 9.18 | 37 |
| SAPカーネル | 9.20 | 11, 13 |
| SAP HANA 2.0のXS Classic内Web Dispatcher | リビジョン079と089 | 2.00.079.11, 2.00.089.05 |
| SAP XS AdvancedとXS Runtime 1 | SP05 | パッチ4 |
| 保守終了カーネル | 7.40, 7.41, 7.42, 7.45, 7.49, 7.73, 7.81, 7.85, 7.89 | 修正なし。アップグレード |
カーネル7.93では、パッチ番号が大きいだけでは修正済みと判断できません。PL 419は依然として影響を受けます。更新されたPL 401 Stack Kernel、公開後のPL 402、またはPL 420以降を使用し、SAPノート3778788のFAQ 6で適切なブランチを確認してください。
表には修正済みの9行と、SAPが保守しないカーネルの1行があります。これはICMとWeb Dispatcherの修正のパッチレベルです。ゲートウェイのパッチレベルは異なり、「修正方法」に記載しています。
SAPの11月パッチデーでは43件の新規および更新のセキュリティノートが公開され、そのうち12件がHotNews、13件がHigh Priorityでした。4件がCVSS v3.1 10.0です。
プライマリインスタンスだけでなく、すべてのアプリケーションサーバーとすべてのWeb Dispatcherで実行中のカーネルを確認します。
# On every application server, including each additional one
disp+work -v
# Through sapcontrol, for each instance number
sapcontrol -nr <NR> -function GetVersionInfo | grep -Ei 'kernel|patch'
# Gateway proxy mode: 1 is restrictive, 0 or an absent parameter is the default allow-all
sapcontrol -nr <NR> -function ParameterValue gw/acl_mode_proxy
disp+work -v は実行中のバイナリのカーネルリリースとパッチ番号を表示します。その番号を自分のリリースの行と比較してください。Web Dispatcherでは、バージョン出力か、インスタンスの作業ディレクトリにあるdev_webdispの先頭行で同じ値を確認します。
修正方法
修正はカーネルバイナリに含まれるため、影響を受ける各コンポーネントにSAPノートを適用して再起動します。
- すべてのAS ABAPアプリケーションサーバーにノート3778530を、すべてのWeb Dispatcher(HANA XSとXS Advancedの組み込みコンポーネントを含む)にノート3778556を適用します。表のパッチレベルに到達させます。
- すべてのゲートウェイにノート3798345を適用し、カーネルが対応している場合は
gw/acl_mode_proxy = 1を設定します。カーネル7.93と9.16はすでにこのパラメーターに対応しています。カーネル7.22、7.53、7.54、7.77、8.04はノートで対応します。 - SAML2の脆弱性については、影響を受けるSAP_BASISリリースにノート3849308を適用し、トランザクションSAML2で信頼するIDプロバイダーを確認します。
- 修正した各コンポーネントを再起動し、実行中のカーネルパッチ番号を確認します。再起動なしでインストールしたサポートパッケージは、脆弱なバイナリをメモリに残します。
- ICMとWeb DispatcherのHTTP/HTTPSポート、およびゲートウェイのポート33NNと48NNへのネットワークアクセスを制限します。
ゲートウェイの修正はカーネルの別の部分を使うため、独自のパッチレベルを持ちます。
| カーネル | 必要な最小パッチ |
|---|---|
| 7.22 EXT, 7.22_EX2, 7.22_EX3 | 1612 |
| 7.53 | 1625 |
| 7.54 | 718 |
| 7.77 | 915 |
| 8.04 | 244 |
| 9.20 | 16 |
| 9.21 | 4 |
カーネル7.20、7.21、7.40、7.41、7.42、7.45、7.49、7.73、7.81、7.85、7.89は保守終了しています。SAPノート3810197が説明するように、保守中の下位互換カーネルへアップグレードしてください。
SAPがサポートする2つの回避策がICM2SHELLの露出を減らします。どちらも修正の代わりにはならず、両方とも動作を変えます。
- WebSocketを無効にします。プロファイルで
icm/HTTP/support_websocket_upgrade=FALSEを設定し、ICMまたはWeb Dispatcherを再起動します。脆弱な経路は消えますが、ABAP Push Channelsと一部のFioriおよび統合シナリオが壊れます。先にHTTPログでステータスコード101を確認してください。WebSocketトラフィックがないシステムのほうが失うものが少なくなります。 - 修正済みのWeb Dispatcherでバックエンドを保護します。7.53 PL 1629、7.54 PL 723、7.93 PL 430、9.16 PL 200以降のWeb Dispatcherは、そのWeb Dispatcherだけを通じて到達するシステムしか保護しません。攻撃者が直接到達できるバックエンドは保護しません。Web Dispatcherが
icm/server_port_<x> = PROT=ROUTERを使用している場合も機能しません。
ゲートウェイでは、制限的なprxyinfoファイルが暫定対策です。P SOURCE=* DEST=*のようなルールを、信頼できるホストと宛先に限定したルールに置き換えます。prxyinfoファイルがなく、カーネルがまだパラメーターに対応していない場合は、修正を適用するまで作成してください。SAPはノート3798345の代わりになる回避策を記載していません。
公開分析にはSAML2の脆弱性の回避策が記載されていません。ノート3849308の適用が修正です。
根本原因は何ですか?
ICMは、ABAPシステムのHTTP、HTTPS、WebSocketトラフィックを受け取るSAPカーネルのコンポーネントです。すべてのブラウザーセッション、Fioriアプリ、OData呼び出し、Webサービス要求がここを通ります。SAP Web Dispatcherは同じカーネルコードで作られたリバースプロキシで、WebSocketメッセージを転送するだけでなく、自分で再組み立てします。
ICM2SHELLは、このWebSocket再組み立て処理におけるヒープのメモリ破壊です。 WebSocket接続は、アップグレードを求めるHTTP要求として始まります。その後メッセージは複数のフラグメントに分割でき、受信側はアプリケーションに渡す前にそれらを結合します。Onapsisは、WebSocket制御フレームの一部のサイズと長さのパラメーターが適切に検証されないことを発見しました。
細工したフレームの連続により、ICMまたはWeb Dispatcherは接続用に確保したメモリを超えて攻撃者のデータを書き込みます。結果は即時のクラッシュか、制御されたヒープ破壊です。SAPカーネルはクローズドソースのため、脆弱な関数は公開されていません。Onapsisがアドバイザリで仕組みを説明しています。
PROXYGATEは、ゲートウェイがプロキシアクセス制御リストを適用する方法にある、別のカーネルの脆弱性です。 SAPゲートウェイは補助プログラムを起動し、RFC接続を中継します。prxyinfoファイルは、どの送信元がプロキシ接続を開けるか、その接続がどこへ向かえるかを一覧にします。ファイルがない場合、プロファイルパラメーターgw/acl_mode_proxyが既定の動作を決めます。既定値は0で、すべてのプロキシ接続を許可します。
SAPの既定のアクセス制御リストは、外部の攻撃者を内部アプリケーションサーバーとして分類します。そのため細工した要求は「内部を許可」のルールを通り、ゲートウェイは攻撃者が指定したプログラムを起動します。
SAML2の脆弱性は、アサーション検証の欠落です。 SAPによると、SAML2サービスプロバイダーは特定の構成で受信する認証アサーションを十分に検証しません。認証されていない攻撃者が細工したアサーションを送信し、特権アカウントを含む任意のユーザーとしてセッションを得られます。
どのように悪用されますか?
ICM2SHELLの公開された実証コードはありません。Onapsisは技術的な悪用手順を伏せ、SAPには動作する完全なエクスプロイトを提供しました。以下の手順は、アドバイザリが公開している経路を説明します。
- ICMまたはWeb DispatcherのHTTPまたはHTTPSポートに到達します。WebSocketサポートは、使用していないシステムでも既定で有効です。
- WebSocketのアップグレードを完了します。SAP S/4HANAの一部の既定ICFサービスは、認証なしでWebSocket接続を受け付けます。
- サイズまたは長さのフィールドが後続データと一致しない、細工したWebSocket制御フレームの連続を送信します。
- 再組み立てコードはその値を信頼し、接続用のバッファーを超えて書き込みます。不正な連続はプロセスをクラッシュさせます。
- 破壊したメモリを整形して実行をリダイレクトします。Onapsisは、そのエクスプロイトが
<sid>admとしてOSコマンドを最初から最後まで実行すると述べています。
PROXYGATEは同じアカウントへ別の経路を取ります。
- プロキシポリシーが信頼しないネットワークから、ゲートウェイポート33NNまたは48NNに到達します。
- 細工したプロキシ要求を送信します。分類の欠陥により、ゲートウェイは送信元を内部アプリケーションサーバーとして扱います。
- 「内部を許可」のルールを通り、ゲートウェイは要求が指定したプログラムを
<sid>admの権限で起動します。
SAML2の脆弱性はコマンド実行を必要としません。
- SAML2サービスプロバイダーのエンドポイントに到達します。
- 影響を受ける構成で、細工した認証アサーションを送信します。
- サービスは十分な検証なしでそれを受け入れ、指定されたユーザーのセッションを作成します。
攻撃の流れは?
細工したWebSocketがICMまたはWeb Dispatcherに到達してヒープを破壊し、<sid>admとしてコマンドを実行します。PROXYGATEも別の経路でこのアカウントとしてOSコマンドを実行できます。一方、SAML2の脆弱性は管理者を含むSAPアプリケーションユーザーになりすまします。
(サイズ検証なし)"] D --> E["クラッシュまたはヒープ破壊"] E --> F["
攻撃者に何ができますか?
ICM2SHELLは、ネットワークアクセスを持つ認証されていない攻撃者に、SAPインストールを所有する<sid>admアカウントと同じ制御を与えます。
- セキュアストアとインスタンスプロファイルからデータベースの資格情報やその他の秘密を読み取り、データベース内の業務データを直接読んだり変更したりする。
- RFC宛先と技術的な資格情報を収集し、接続されたSAPおよびSAP以外のシステムへ移動する。
- 構成やバイナリを変更し、永続的なアクセスを維持する。
- システムを停止したりデータを破壊したりして、それが実行する業務プロセスをオフラインにする。
不正な接続1つでICMまたはWeb Dispatcherがクラッシュすることもあります。プロセスの再起動中、それが提供するすべてのFioriアプリ、API、Webサービスが利用できなくなり、繰り返し試行すると停止が続きます。
PROXYGATEは認証なしで<sid>admと同じコマンド実行を与えますが、ゲートウェイのプロキシポリシーが許可的または欠落している場合に限られます。制限的なprxyinfoは信頼しないネットワークからの経路を遮断します。
SAML2の脆弱性は、管理者を含む任意のSAPユーザーとしてのセッションを与えます。SAPが説明するSAML2構成に依存し、なりすましたユーザーの権限を通じて接続システムにも及び得ます。
修正が機能する理由
カーネルの修正は、Onapsisが説明するWebSocket再組み立て処理の検証不足を解消します。
ノート3778530とノート3778556は、表のパッチレベルで修正済みのカーネルコードを提供します。ICMとWeb Dispatcherはコードを共有するため、修正は両方を対象にします。
ノート3798345はゲートウェイの既定のプロキシ動作を変更し、gw/acl_mode_proxyを追加します。ノート適用後、prxyinfoがない場合にすべて許可ではなく制限的にするため、運用者はパラメーターを1に設定する必要があります。ノート3849308は、受信するSAML2アサーションの不足している検証を追加します。
SAPはこれらのクローズドソースコンポーネントのパッチ差分を公開していないため、修正を行単位で確認できません。Onapsisは脆弱性が再組み立て処理にあると述べ、SAPのノートは修正済みパッチレベルを一覧にしています。どちらのベンダーも変更後のコードを公開していません。
侵害されたかどうかを確認するには?
SAPもOnapsisもICM2SHELLの侵害指標を公開していません。以下の確認は、試行が残すクラッシュと再起動のパターンと、他の脆弱性が生むゲートウェイとSAML2の活動を探します。
- 各アプリケーションサーバーとWeb Dispatcherで、
/usr/sap/<SID>/<INSTANCE>/work/のdev_icmとdev_webdispを調べ、保守時間外の予期しない終了、パニック、再起動の記録を確認します。 icmanとsapwebdispのプロセスIDを、最後に計画した再起動と比較します。修正も再起動もないのに変わっていれば手がかりです。- ICMまたはWeb DispatcherのHTTPログで、WebSocketアップグレードを示すステータスコード101を検索します。WebSocketを使うアプリケーションがなければ、そのような要求は確認に値します。
- ゲートウェイでは、
dev_gwrdとセキュリティ監査ログで、SAPサーバーネットワーク外からの受信プロキシ接続と、既知のジョブ以外で起動した補助プログラムを確認します。 - SAML2では、IDプロバイダー側に対応する認証イベントがないログオンと、2026年11月10日以降に新規作成または変更された特権ユーザーを確認します。
失敗した試行はクラッシュ以外の痕跡を残さないことがあり、クラッシュには別の原因もあります。これらの結果は証拠ではなく手がかりとして扱ってください。
年表
- 2026-11-10:SAPが11月のセキュリティノート(3778530、3778556、3798345、3849308を含む)と4件のCVEレコードを公開する。OnapsisがICM2SHELLとPROXYGATEの分析、およびパッチデーのレビューを公開する。
- 2026-11-12:OnapsisがICM2SHELLとPROXYGATEのアドバイザリを更新する。
- 2026-11-14:悪用は報告されておらず、CISAのSSVCレコードは依然として「なし」を示し、4件のCVEはいずれもCISAのKEVカタログにない。
よくある質問
ICM2SHELLは実際の攻撃で悪用されていますか?
いいえ。Onapsisは11月10日に悪用を観測していないと述べ、CISAのSSVCレコードは「なし」を示し、2026年11月14日時点で4件のCVEはいずれもKEVにありません。OnapsisがSAPに提供した動作するエクスプロイトは実証用であり、公開ツールではありません。
認証はICM2SHELLからSAPシステムを守りますか?
いいえ。脆弱性は認証前に到達できるため、HTTPまたはHTTPSポートへのネットワークアクセスで十分です。SAP S/4HANAの一部の既定ICFサービスは、認証なしでWebSocket接続を受け付けます。
SAP NetWeaver AS Javaは影響を受けますか?
ICM2SHELLについてはいいえ。脆弱性はABAPスタックのカーネルコードにあり、デュアルスタック構成はそのスタックを通じて影響を受けます。ゲートウェイの脆弱性はAS Javaシステムと単体ゲートウェイに影響します。
SAP HANAデータベースは影響を受けますか?
HANA XS ClassicとXS Advancedに組み込まれたWeb Dispatcherが影響を受け、修正済みリビジョンは2.00.079.11と2.00.089.05です。OnapsisはHANAデータベースエンジン自体を影響対象として挙げていません。
修正の代わりにWebSocketを無効にできますか?
アプリケーションが使用していなければ可能です。icm/HTTP/support_websocket_upgrade=FALSEを設定し、コンポーネントを再起動します。ICM2SHELLの経路は消えますが、ABAP Push Channelsと一部のFioriシナリオが壊れるため、先にHTTPログでコード101を確認してください。
ノート適用後に何か設定する必要がありますか?
ゲートウェイについては必要です。ノート3798345の後、対応するカーネルでgw/acl_mode_proxy = 1を設定し、制限的なprxyinfoファイルを維持します。ICM2SHELLではカーネルの修正が解決策であり、修正済みバイナリを読み込むためにコンポーネントを再起動する必要があります。
Ostorlabで公開されたSAPシステムを洗い出す
ネットワーク上で到達できるSAPアプリケーションサーバーとWeb DispatcherをOstorlabの攻撃対象領域ディスカバリーで洗い出します。Basisチームは、どのホストを先に修正して再起動すべきか分かります。
参考資料
- Onapsis Research Labs, "ICM2SHELL (CVE-2026-76964 and CVE-2026-89126): A Critical Pre-Authentication Vulnerability in SAP NetWeaver's ICM and Web Dispatcher", 2026年11月10日、2026年11月12日更新: https://onapsis.com/blog/icm2shell-cve-2026-76964-cve-2026-89126-sap-netweaver-web-dispatcher-threat-advisory/ (2026年11月14日確認)
- Onapsis Research Labs, "PROXYGATE (CVE-2026-89103): A Critical Pre-Authentication Vulnerability in SAP NetWeaver's Gateway", 2026年11月10日、2026年11月12日更新: https://onapsis.com/blog/proxygate-cve-2026-89103-sap-netweaver-gateway-threat-advisory/ (2026年11月14日確認)
- Onapsis Research Labs, "SAP Security Notes: November 2026 Patch Day", 2026年11月10日、2026年11月12日更新: https://onapsis.com/blog/sap-security-patch-day-nov-2026/ (2026年11月14日確認)
- SAPセキュリティノート3778530、CVE-2026-76964のICM修正: https://me.sap.com/notes/3778530 (2026年11月14日確認)
- SAPセキュリティノート3778556、CVE-2026-89126のWeb Dispatcher修正: https://me.sap.com/notes/3778556 (2026年11月14日確認)
- SAP FAQノート3778788、ICM2SHELLの回避策: https://me.sap.com/notes/3778788 (2026年11月14日確認)
- SAPセキュリティノート3798345、CVE-2026-89103のゲートウェイ修正: https://me.sap.com/notes/3798345 (2026年11月14日確認)
- SAPセキュリティノート3849308、CVE-2026-120017のSAML2修正: https://me.sap.com/notes/3849308 (2026年11月14日確認)
- SAPノート3810197、保守終了カーネルの下位互換アップグレード経路: https://me.sap.com/notes/3810197 (2026年11月14日確認)
- CVE-2026-76964のレコード、CVSS v3.1 10.0、2026年11月10日公開: https://www.cve.org/CVERecord?id=CVE-2026-76964 (2026年11月14日確認)
- CVE-2026-89126のレコード、CVSS v3.1 10.0、2026年11月10日公開: https://www.cve.org/CVERecord?id=CVE-2026-89126 (2026年11月14日確認)
- CVE-2026-89103のレコード、CVSS v3.1 10.0、2026年11月10日公開: https://www.cve.org/CVERecord?id=CVE-2026-89103 (2026年11月14日確認)
- CVE-2026-120017のレコード、CVSS v3.1 10.0、2026年11月10日公開: https://www.cve.org/CVERecord?id=CVE-2026-120017 (2026年11月14日確認)
- CISAの悪用済み脆弱性カタログ。4件のCVEはいずれも掲載されていない: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (2026年11月14日確認、カタログのJSONフィードによる)