Power BI Desktop RS 同梱 libcurl.dll で検出される CVE‑2023‑38545 の原因と対処方法

Power BI Report Server 環境を脆弱性スキャンすると、Power BI Desktop(Report Server 用・最適化版)に同梱されている Simba DocumentDB ODBC Driver の libcurl.dll が「CVE‑2023‑38545(curl 7.69 < 8.4.0 heap buffer overflow)」として検出されるケースが増えています。本記事では、この検出が起きる理由と、Windows Update(KB5032196)だけでは解消しない仕組み、そして現実的な対処パターンを実務目線で整理します。

目次

問題の概要:Power BI Desktop RS 同梱 libcurl.dll が CVE‑2023‑38545 で検出される

典型的な検出パスと診断内容

多くの環境で脆弱性スキャナにより、次のようなパスが CVE‑2023‑38545 として指摘されます。

C:\Program Files\Microsoft Power BI Desktop RS\bin\ODBC Drivers\Simba DocumentDB ODBC Driver\LibCurl64.DllA\libcurl.dll

この DLL は、Power BI Desktop(Power BI Report Server 用の最適化版)に同梱されている Simba DocumentDB ODBC Driver の内部で使われている libcurl.dll です。Microsoft Q&A でもまったく同じパスが話題になっており、現場でよく見かける「あるある」な検出パターンだと分かります。

スキャナ側の診断メッセージは、おおむね次のような形式です。

  • 脆弱性 ID: CVE‑2023‑38545
  • 影響バージョン: libcurl 7.69.0 ~ 8.3.x
  • 検出バージョン例: 7.79.x / 7.80.x など(環境により異なる)
  • 推奨: 8.4.0 以上に更新

つまり問題の本質は、Power BI 本体ではなく、同梱 ODBC ドライバー内部の libcurl が古いままであることです。

要素内容
製品Power BI Desktop(Power BI Report Server 用・最適化版)
コンポーネントSimba DocumentDB ODBC Driver
問題のファイルLibCurl64.DllA\libcurl.dll
検出される脆弱性CVE‑2023‑38545(libcurl の SOCKS5 ハンドシェイクにおけるヒープバッファオーバーフロー)
OSWindows Server 2019(多くは Power BI Report Server とセットで利用)

CVE‑2023‑38545 とは何か:どのような条件で危険になる?

脆弱性の技術的なポイント

CVE‑2023‑38545 は、curl / libcurl が SOCKS5 プロキシを使う際のハンドシェイク処理において、特定条件でヒープバッファをオーバーフローさせられる欠陥です。

公式情報をかみ砕くと、ざっくり次のような条件が揃ったときに問題が発生します。

  • 通信経路として SOCKS5 プロキシを利用している
  • ホスト名解決を curl 側ではなく SOCKS5 プロキシ側に任せる設定になっている
  • ホスト名(URL)が特定の長さ条件を満たす

逆に言えば、SOCKS5 プロキシを一切使っていない構成では、実際に悪用されるリスクはかなり低いと考えられます。ただし、「リスクが低い」ことと「検出されなくなる」ことは別問題です。スキャナは単にバージョン番号で判定するため、libcurl が 8.4.0 未満である限り、報告は残り続けます。

影響を受けるバージョンと修正バージョン

項目バージョン
影響範囲libcurl / curl 7.69.0 ~ 8.3.x
修正が入った最初のバージョン8.4.0
推奨8.4.0 以上(可能であれば、さらに新しい安定版)

curl プロジェクトの公式アドバイザリでも、「この脆弱性は 8.4.0 で修正された」と明記されています。

KB5032196 ではなぜ解消しないのか? OS の curl.exe とアプリ同梱 libcurl.dll の違い

KB5032196 の正体:OS 同梱 curl.exe の更新

KB5032196 は、Windows 10 1809 / Windows Server 2019 向けの 2023 年 11 月の累積更新プログラムです。この更新によって、OS が持つ curl.exe%SystemRoot%\System32\curl.exe など)が 8.4.0 系に更新され、CVE‑2023‑38545 が解消されます。

しかし、ここで重要なのは次のポイントです。

  • Windows Update は「OS が標準で持っているコンポーネント」だけを更新する
  • 各アプリケーションが独自に同梱している libcurl.dllcurl.exe は、OS の更新対象外

そのため、いくら KB5032196 を適用しても、

  • C:\Program Files\Microsoft Power BI Desktop RS\... 配下の libcurl.dll
  • その他、サードパーティ製アプリ配下の libcurl.dll / curl.exe

といった「アプリ同梱版」のバージョンは一切変わりません。この点は、Microsoft Q&A や各種フォーラムでも繰り返し説明されています。

OS とアプリ同梱 DLL の関係を整理

項目OS 同梱 curl.exeアプリ同梱 libcurl.dll(本件)
配置場所の例C:\Windows\System32\curl.exeC:\Program Files\Microsoft Power BI Desktop RS\...
管理主体Microsoft(Windows Update)各アプリ/ドライバーのベンダー(Simba / insightsoftware / Microsoft Power BI チームなど)
更新方法累積更新プログラム(例:KB5032196)を適用アプリ本体やドライバーの更新プログラムを適用、またはベンダー配布の新ビルドをインストール
CVE‑2023‑38545 の解消可否8.4.0 以上に更新されれば解消バージョンが 8.4.0 未満なら解消されない(OS 側がどうであれ)

つまり、Power BI Desktop RS 配下の libcurl.dll を直したいなら、Windows Update ではなく「Power BI / Simba ドライバー側の更新」が必須ということです。

推奨される解決策:優先度つき対応パターン

ここからは、実務で取りうる対応を 優先度つきで整理します。

優先度対応案概要メリット注意点
A(推奨)Power BI Desktop RS 本体の更新四半期ごとの「最適化版」を最新版へ入れ替え同梱ドライバー一式が丸ごと新しくなるため、副作用が少ないPBIRS やレポートとの互換性を事前検証
BSimba DocumentDB ODBC Driver の個別アップデートベンダー配布の新しい ODBC ドライバーを取得して置き換え必要なドライバーだけ更新できるPower BI 側が想定しているバージョンとの整合性確認が必要
B-2libcurl.dll の手動差し替え(暫定)同じ TLS バックエンドでビルドされた libcurl 8.4.0 以上をバックアップの上で入れ替えスキャナ上の検出を比較的早く解消できるベンダー非サポート。検証環境での十分なテストが必須
CSimba DocumentDB ODBC の無効化・削除使っていないならドライバーをアンインストール/フォルダリネーム機能的依存がなければ最もシンプル将来 DocumentDB 連携を使う際は再導入が必要
DSOCKS5 を使わない運用の確認・徹底SOCKS5 プロキシ経由の通信を避けることで実害リスクを下げる短期的なリスク低減策として有効バージョン自体は変わらないため、スキャナの検出は残る

Power BI Desktop RS 本体を最新版へ更新(A:恒久対策)

最も「筋が良い」対応は、Power BI Desktop(Power BI Report Server 用・最適化版)を最新版へ更新することです。Power BI Report Server は四半期ごとに新バージョンがリリースされ、それに合わせて「最適化された Power BI Desktop」も更新されます。この更新により、

  • Simba ODBC ドライバー群
  • その他組み込みコンポーネント(例:.NET ランタイム、ネイティブライブラリなど)

がまとめてリフレッシュされるため、個別 DLL を交換するよりも安全で、サポート面でも合理的です。

実務上のステップ例:

  1. テスト環境の Power BI Report Server に対応する最新版の「最適化版 Power BI Desktop」をインストール
  2. 問題となっているレポートを開き、DocumentDB 連携などが利用されている場合は動作検証
  3. テスト環境で脆弱性スキャンを実施し、libcurl のバージョンが 8.4.0 以上(またはそれ相当)になっていることを確認
  4. 問題がなければ、本番環境の Power BI Desktop RS を同じバージョンへ更新

加えて、Windows Server 2019 側も KB5032196 以降の累積更新を適用しておくことで、OS 同梱の curl.exe についても CVE‑2023‑38545 を含む既知の脆弱性が解消された状態を維持できます。

Simba DocumentDB ODBC Driver の個別アップデート(B)

もし Power BI 本体の更新タイミングをすぐには作れない場合は、Simba DocumentDB ODBC Driver だけを個別に更新するという選択肢があります。

Simba 系 ODBC ドライバーは現在は insightsoftware などから提供されており、DocumentDB 用ドライバーもダウンロードできます。

高レベルな手順イメージは以下の通りです。

  1. ベンダーのサイトから、libcurl 8.4.0 以上を同梱する最新版 Simba DocumentDB ODBC ドライバーを入手
  2. テストサーバーにインストールし、Power BI Desktop RS から対象の ODBC ドライバーを選択して接続テスト
  3. ドライバーバージョンと libcurl.dll のバージョンを PowerShell などで確認
  4. スキャンで CVE‑2023‑38545 が解消されていることを確認したうえで、本番サーバーへロールアウト

注意すべき点としては、

  • Power BI Desktop RS が「想定している」ドライバーのビルドと差が大きいと、予期せぬ不具合が起きる可能性がある
  • Power BI のサポートポリシー的に、同梱以外のドライバーを利用する構成がどこまで許容されるかは要確認

このため、本番環境に投入する前に十分な検証バックアウト手順の準備が不可欠です。

libcurl.dll を手動で差し替える暫定策(B-2:自己責任)

ベンダーからすぐには更新版が提供されない場合、「どうしてもスキャン結果を短期でゼロにしたい」というプレッシャーから、libcurl.dll のみを 8.4.0 以上へ差し替えるという案が浮かびます。

cURL のメーリングリストやフォーラムでも、複数の製品で同じような相談があり、「アプリ同梱の libcurl は本来ベンダーが更新すべきで、利用者側が置き換えるのは推奨されないが、実務上はやらざるを得ないこともある」というスタンスが示されています。

もしどうしても行う場合は、最低限次のポイントを守ってください。

  • 必ずバックアップを取得
    LibCurl64.DllA フォルダーごと別名コピーしておくなど、元に戻せる状態を作る。
  • 同じ TLS バックエンドでビルドされた libcurl を使う
    Windows 向けバイナリには「Schannel(WinSSL)版」「OpenSSL 版」などがあり、ここを間違えると証明書検証や通信でエラーが出る。
  • テスト環境での十分な検証
    Power BI から DocumentDB 連携を実際に実行し、プレビュー・発行・スケジュール更新などのシナリオを一通り確認。
  • ベンダーの正式サポートが受けられない可能性を理解する

繰り返しになりますが、恒久対策としては「本体更新」か「ドライバー更新」を優先し、この DLL 差し替えはあくまで暫定策と位置づけるのがおすすめです。

Simba DocumentDB ODBC を使っていないなら無効化・削除(C)

もし貴環境で DocumentDB(Azure Cosmos DB の旧称)連携を一切使っていないのであれば、最も手っ取り早いのは、該当ドライバーを無効化することです。

選択肢としては、

  • 「アプリと機能」や ODBC セットアップから Simba DocumentDB ODBC Driver をアンインストールする
  • ODBC Drivers\Simba DocumentDB ODBC Driver フォルダーをリネームし、Power BI から読み込めないようにする

などがあります。いずれの方法でも、そのドライバーを使った接続ができなくなるため、事前に次をチェックしてください。

  • Power BI Report Server 上のレポートで DocumentDB 連携が使われていないか
  • 今後のロードマップとして、DocumentDB を使う予定がないか

監査担当・セキュリティチームとのコミュニケーションでは、

  • 「現状このドライバーは利用しておらず、アンインストールによって攻撃面そのものを除去する」
  • 「今後利用する場合は、最新版ドライバーで再導入する運用にする」

と説明すると、リスク低減策として理解を得やすくなります。

SOCKS5 プロキシを使わない構成の確認(D:リスク低減)

繰り返しになりますが、CVE‑2023‑38545 は SOCKS5 プロキシ経由の通信が前提条件です。 そのため、短期的には次のような確認・整理をしておくと安心です。

  • 環境変数 ALL_PROXY / http_proxy / https_proxy で SOCKS5 が指定されていないか
  • アプリケーション設定で SOCKS5 プロキシを使う構成がないか
  • ネットワーク機器側で SOCKS5 プロキシの提供・到達性を制限しているか

PowerShell で環境変数を確認する例:

Get-ChildItem Env:ALL_PROXY,HTTP_PROXY,HTTPS_PROXY

OS レベルのプロキシ(WinHTTP)の設定確認:

netsh winhttp show proxy

このような確認により、仮に libcurl の更新が少し遅れても、実害のリスクを抑えた状態で運用できるようになります。ただし、コンプライアンス上はバージョン更新を求められるケースが多いため、「リスク低減策」として説明しつつ、恒久対策のスケジュールも合わせて提示するのがおすすめです。

PowerShell でのバージョン確認手順(実行例付き)

対象 libcurl.dll のバージョンを確認

まずは、問題になっている libcurl.dll が本当に古いのかを確認します。

# 対象 DLL 1 件を確認
(Get-Item 'C:\Program Files\Microsoft Power BI Desktop RS\bin\ODBC Drivers\Simba DocumentDB ODBC Driver\LibCurl64.DllA\libcurl.dll').VersionInfo |
  Format-List ProductVersion, FileVersion

# システム全体で libcurl.dll を探索(時間がかかる場合あり)
Get-ChildItem 'C:\' -Recurse -Filter libcurl.dll -ErrorAction SilentlyContinue |
  Select-Object FullName,@{n='FileVersion';e={(Get-Item $_.FullName).VersionInfo.FileVersion}}

スキャン結果と照合し、

  • 対象 DLL が 7.◯◯ や 8.3.x など、8.4.0 未満であること
  • 他のアプリにも古い libcurl.dll がないか

を一覧で把握しておくと、後続の説明や対応計画が作りやすくなります。

OS 側の curl.exe のバージョン確認

参考までに、OS 同梱の curl.exe のバージョンも確認しておきましょう。

$ver = &amp; "$env:SystemRoot\System32\curl.exe" --version 2&gt;$null
$ver

ここで表示される先頭行に curl 8.4.0 以上が表示されていれば、KB5032196 以降の更新が適用されていると判断できます。

更新後の再確認とレポート作成

Power BI 本体や Simba ドライバーを更新したあと・あるいは DLL を差し替えたあとには、必ず次の 2 つを実施してください。

  1. PowerShell で対象パスの libcurl.dll バージョンを再取得し、8.4.0 以上であることを確認
  2. 脆弱性スキャナを再実行し、CVE‑2023‑38545 の検出が消えたことを確認

この結果をスクリーンショットやテキストログとして残しておくと、監査対応や社内レポートで非常に役立ちます。

よくある誤解と、その説明の仕方

「KB5032196 を入れれば全部直る」は誤解

現場でよくある誤解が、

「2023 年 11 月の更新(KB5032196)で curl が直ったのだから、Power BI も大丈夫なはず」

という認識です。これに対しては、次のポイントで説明するのが分かりやすいでしょう。

  • KB5032196 が更新するのは OS 標準の curl.exe だけであること
  • Power BI Desktop RS 配下の libcurl.dll は アプリ同梱コンポーネントであり、Windows Update の管轄外であること
  • 同様の問題は他のアプリ(Notepad++ や各種管理ツールなど)でも起きており、アプリ側の更新で対応するのが一般的であること

Microsoft の Q&A や各種フォーラムでも、「OSの curl は KB で直るが、アプリ同梱分はベンダー更新が必要」という説明がなされています。

「脆弱性=必ず危険」は条件付き

もう一つの誤解は、

「CVE が付いている以上、今すぐにでも悪用される危険がある」

というイメージです。CVE‑2023‑38545 に関しては、

  • SOCKS5 プロキシ経由という条件がある
  • ホスト名長など、さらに細かい条件もある

ため、多くの企業内システムで即座に悪用されるケースは限定的です。とはいえ、

  • スキャンで検出され続けると監査上の指摘になる
  • 将来の運用変更で SOCKS5 を使う可能性もゼロではない

といった事情もあるため、「リスクは相対的に低いが、コンプライアンス上は更新しておくべき」というスタンスで説明するのが現実的です。

セキュリティチームとのコミュニケーション例

最後に、セキュリティ部門や監査チームに説明するときのメモ例を載せておきます。

・検出内容
  - CVE‑2023‑38545(curl/libcurl 7.69~8.3.x)
  - 対象ファイル:Power BI Desktop RS 同梱 Simba DocumentDB ODBC Driver 内の libcurl.dll

・リスク評価
  - 本番環境では SOCKS5 プロキシを利用しておらず、現時点での実害リスクは限定的
  - ただし、バージョンベースの検出は残り続けるため、コンプライアンス上は更新が望ましい

・対応方針
  A. 次回メンテナンスで Power BI Desktop RS を最新の最適化版へ更新
  B. 併せて Simba DocumentDB ODBC Driver のバージョンアップを検討
  C. DocumentDB 連携を利用していない場合は、ドライバーの無効化も候補
  D. 短期的には SOCKS5 プロキシを利用しない構成であることを確認・継続

・スケジュール
  - テスト環境での検証完了予定日:YYYY/MM/DD
  - 本番反映予定日:YYYY/MM/DD

このように、「リスク評価」→「具体的な対応」→「スケジュール」までセットで示すと、単に「KB を入れたから大丈夫です」と言うよりも、はるかに納得感の高い説明になります。

まとめ:ポイントの再整理

  • CVE‑2023‑38545 は libcurl/curl の SOCKS5 処理に関する脆弱性で、8.4.0 で修正済みです。
  • KB5032196 は OS 同梱の curl.exe を 8.4.0 系に更新する Windows Updateですが、Power BI Desktop RS に同梱された libcurl.dll までは更新しません
  • そのため、Power BI Desktop RS 本体や Simba DocumentDB ODBC Driver を更新するのが正攻法です。
  • DocumentDB 連携を使っていないなら、ドライバーをアンインストール/無効化することでスキャン上の攻撃面自体を削ることもできます。
  • 短期的には、SOCKS5 プロキシを利用しない構成であることを確認しておけば、実害リスクをかなり抑えられます。

「KB を入れれば終わり」ではなく、OS とアプリ同梱ライブラリを切り分けて考えることが、今回のような libcurl 関連の脆弱性対応では重要です。この記事の内容をもとに、自社環境での現状把握と、現実的な対応ロードマップ作りに役立てていただければ幸いです。

参考リンク

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次