SAP Cloud SDK for Pythonの脆弱性でOAuth2のシークレットが漏えいするおそれ
SAP Cloud SDK for PythonにCVSS 10.0の脆弱性が見つかりました。攻撃者はOAuth2のトークン要求をリダイレクト(転送)し、アプリのシークレット(秘密情報)を盗めます。バージョン0.45.2以降で修正されています。
3 分で読めます

数字で見る
- CVSS score of CVE-2026-89111
- 10.0
- first patched version, per SOCRadar
- 0.45.2
- critical notes in SAP's October 2026 patch day, per SecurityWeek
- 4
SAPは、Cloud SDK for Pythonにある最大深刻度の脆弱性を修正しました。この脆弱性を悪用されると、アプリのログイン用のシークレットが攻撃者の手に渡るおそれがあります。CVE-2026-89111として追跡されるこのバグの評価は10点満点中10.0で、2026年10月13日に公開されたSAPの2026年10月のセキュリティアップデートで修正されました。影響を受けるのは、1つのデプロイメントで多数の顧客にサービスを提供するアプリです。攻撃者はログインする必要がありません。
SAP Cloud SDK for Pythonは、SAPのBusiness Technology Platform(BTP)上でアプリを構築するために開発者が使うライブラリです。BTPは、SAPシステムと並べて独自のアプリを動かすためのSAPのクラウドサービスです。脆弱性は、このライブラリがOAuth2トークンを要求する仕組みにあります。OAuth2トークンとは、アプリが他のサービスを呼び出す際に使う、有効期間の短い通行証のようなものです。
攻撃の仕組み
このバグは、サーバーサイドリクエストフォージェリ(SSRF)です。攻撃者がサーバーをだまし、攻撃者が選んだ宛先にリクエストを送らせる攻撃を指します。SecurityWeekが引用したSAPのGitHubアドバイザリは、「tenant_subdomainパラメーターを制御できる攻撃者は、OAuth2トークン要求をリダイレクトできる」と端的に説明しています。
攻撃の流れをわかりやすく説明すると、次のとおりです。
- マルチテナントのアプリは、テナントのサブドメインからトークンサーバーのアドレスを組み立てます。サブドメインとは、Webアドレスのうち顧客ごとに異なる部分です。
- ライブラリは、その値を十分に確認していませんでした。
- 攻撃者は、別の場所を指すサブドメインを指定します。
- アプリはトークン要求をその場所に送ります。その際、クライアントIDとクライアントシークレットが添付されます。
この2つの値は、アプリ自身の認証情報です。攻撃者はこれらを使えば、アプリになりすましてトークンを要求できます。SOCRadarによると、この脆弱性だけでは管理者権限を得たり、攻撃者がコードを実行したりすることはできません。
影響を受けるバージョン
SOCRadarは、バージョンと修正状況を次のように挙げています。
| バージョン | 状況 |
|---|---|
| 0.45.2未満 | 脆弱 |
| 0.45.2 | 公式の修正:サブドメインをDNSの命名規則に照らして確認 |
| 0.53.0から0.55.0 | 検証の欠陥が独自に報告されている(SAPのアドバイザリの対象外) |
| 0.55.1 | 検証が復元 |
0.53.0から0.55.0の欠陥は、SOCRadarだけが報告しているものです。SAPのアドバイザリはこれを対象としていないため、0.55.1以降を安全な最低ラインと考えてください。プロジェクトのGitHubページでは、10月17日付の0.60.1が最新リリースとなっています。このリリースは、ドキュメントクライアントにある別のURLパスインジェクションのバグを修正するものです。10月9日のリリースでは、テナントのトークンURLの組み立て方も修正されました。
SOCRadarは10月14日、攻撃の報告はないと述べました。SecurityWeekも、実環境での悪用は確認されていないとSAPが報告していると伝えています。
SAPの10月パッチデーのその他の脆弱性
BleepingComputerとSecurityWeekによると、SDKの脆弱性は4件の重大な問題のうちの1件でした。
| CVE | 製品 | スコア | 問題 |
|---|---|---|---|
| CVE-2026-89111 | Cloud SDK for Python | 10.0 | OAuth2のSSRF、ログイン不要 |
| CVE-2026-89110 | NetWeaver Visual Composer | 9.9 | アクセス制御の不備 |
| CVE-2026-89107 | S/4HANA | 9.9 | Fioriロールを1つ持つユーザーによるコードインジェクション |
| CVE-2026-89108 | Manufacturing Integration and Intelligence | 9.1 | 認可チェックの欠如 |
今回の修正の数え方は、メディアによって異なります。BleepingComputerは脆弱性20件、SecurityWeekは新規および更新されたセキュリティノート22件としています。SOCRadarは、新規ノート16件とGitHubアドバイザリ4件と数えています。
開発者にとっての意味
PythonでマルチテナントのBTPアプリを提供しているなら、今日中に依存関係ファイルを確認してください。SDKを探し、そのバージョンを控えておきましょう。修正はサーバーのパッチではなく、ライブラリのアップグレードです。そのため、再デプロイしない限りユーザーには届きません。
- 最新リリースにアップグレードすること。 最新リリースは、0.45.2と0.55.1のどちらよりも新しいバージョンです。
- すぐにアップグレードできない場合は、テナント名を許可リストで制限すること。 BleepingComputerによると、SAPのアドバイザリは「tenant_subdomainを既知の許可リストと照合して検証すること」を推奨しています。
- 少しでも疑わしければ、クライアントシークレットをローテーションすること。 SOCRadarは、OAuth2トークンの通信とBTPの監査ログを確認するよう勧めています。未知のホストへのトークン要求が見つかったら、シークレットは漏えいしたものと考えてください。
- 自分のコードの入力処理を見直すこと。 顧客が指定した値からURLを組み立てるコードは、どのライブラリを使っていても、同じ種類のリスクを抱えています。
ユーザー入力からサブドメインを受け取らないシングルテナントのアプリは、リスクがずっと低くなります。ただし、ライブラリにあるCVSS 10.0の脆弱性は見落とされがちです。SAPのサーバーパッチでは修正されないからです。
出典
- SAP warns of maximum severity OAuth2 SSRF security flaw - BleepingComputer
- SAP Patches Critical NetWeaver, S/4HANA Vulnerabilities - SecurityWeek
- CVE-2026-89111: Critical SAP Cloud SDK SSRF - SOCRadar
- SAP Cloud SDK for Python releases - GitHub
関連記事

OpenCode Consoleで侵害、保存されたAIプロバイダーのキーが流出のおそれ
OpenCode(オープンコード)は2026年10月17日、侵害がOpenCode Consoleユーザーの1.4%に及んだと明らかにしました。保存されていたOpenAI、Anthropic、GoogleのAPIキーが流出した可能性があります。

GitHubのライセンスコンプライアンス機能が一般提供開始
GitHub(ギットハブ)のオープンソースライセンスコンプライアンスが2026年10月16日に一般提供となりました。承認されていないライセンスを追加するプルリクエストを、rulesetでブロックできます。

GitHub Appのインストールトークンが520文字のJWTに
GitHub(ギットハブ)は10月2日、GitHub Appのインストールトークンをステートレス形式へ移行し終えました。長さは40文字から約520文字に増え、従来のチェックが動かなくなるおそれがあります。