本文へ移動
English version →
重大 9.9 急ぎ度: 早めに

OpenEMRに重大な脆弱性4件、修正版8.3.0が公開

OpenEMRの8.3.0より前の版に、患者データの流出やサーバー乗っ取りにつながる重大な脆弱性が4件見つかりました。修正版の8.3.0へ更新し、FAX/SMSモジュールの利用有無とアクセスログを確認してください。

CVE-2026-124450 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆

同じ発表の脆弱性 4 件

この記事でまとめた分です。発表元の告知には、ほかの脆弱性も載っていることがあります。

記事のイメージ(生成 AI による画像)
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v3が最大9.9で患者データの流出とコード実行に至る一方、修正版8.3.0が公開されており、更新で4件とも解消するため早めの対応です。

関係があるか

OpenEMRを自前のサーバーで運用している医療機関やクリニック、その運用を請け負う事業者が対象です。受付・診療・会計の担当者がログインして使う環境なら、権限の低いアカウントも攻撃の起点になります。

製品影響を受ける版修正版
OpenEMR 8.3.0より前のすべての版。FAX/SMSモジュール(oe-module-faxsms)の2件は、勧告が8.2.0のモジュール再構成で入ったと説明しています 8.3.0

確かめ方

  1. 1OpenEMRの版を管理者に確認し、8.3.0より前なら4件すべての対象として扱います。
  2. 2管理画面のModules > Manage Modulesで、oe-module-faxsmsが有効かどうかを見ます。有効なら、FAX/SMSの2件の前提がそろいます。
  3. 3FAX/SMSモジュールの設定で、利用中のFAXベンダー(RingCentralかSignalWire)を確認します。
  4. 4Fee SheetやCAMOSを日常の診療や会計で使っているなら、SQLインジェクションとクロスサイトスクリプティングの2件も現実の影響範囲です。

何が起きたか

OpenEMR 8.3.0より前の版に、患者データの漏えいやサーバー上でのコード実行につながる脆弱性が4件あります。ファイルの読み書きからコード実行に至るもの、SQLインジェクションで患者データを抜き取れるもの、印刷画面でスクリプトが動くものが含まれ、いずれも8.3.0で修正されています。

  • CVE-2026-124450: FAX/SMSモジュールのdisposeDocumentが、検証のないfile_pathを受け付けます。sqlconf.phpの読み出しと、任意のファイルの書き込みができ、コード実行に至ります(CVSS v3は9.9、CWE-73)
  • CVE-2026-124490: 同じdisposeDocumentのうち、RingCentral用のRCFaxClientの実装です。認証情報やソースコードの読み出しと、Webから実行できるファイルの書き込みができます(CVSS v3は9.1、CWE-73)
  • CVE-2026-124469: Fee Sheetの薬剤在庫の検索(DrugSalesService::sellDrug)で、prod[N][warehouse]の値がORDER BY句にそのまま入ります。患者データとusers_secureのbcryptハッシュが抜き出されます(CVSS v3は9.9、CWE-89)
  • CVE-2026-124463: CAMOSの内容が、rx_print.phpの通常の印刷経路でエスケープされずに出力されます。保存されたスクリプトが、印刷した利用者の権限で動きます(CVSS v3は8.7、CWE-79)

CVE-2026-124450と124490は、同じdisposeDocumentについて別々に登録されたものです。8.2.0でdisposeDocumentがFAXベンダーごとのクラスに分かれた際、EtherFaxActionsには認証・パスの制限・拡張子の制限・実行コードの検査が入りました。RCFaxClientとSignalWireClientには、そのいずれもありません。OpenEMR側の勧告は2026年8月18日付です。

攻撃の流れ

  1. 1

    ログイン

    OpenEMRの低権限アカウントでログインします。

  2. 2

    機能の悪用

    FAX/SMSモジュール、Fee Sheet、CAMOSのいずれかに、細工した入力を送ります。

  3. 3

    情報の入手

    sqlconf.phpのDB認証情報や、患者データ、パスワードハッシュが読み出されます。

  4. 4

    サーバー侵害

    任意ファイルの書き込みから、Webサーバーの実行ユーザー権限でコードが動きます。

公開されている情報をもとにした流れの例です。

どう悪用されるか

4件とも、OpenEMRにログインできる利用者が起点です。ネットワーク経由で、利用者の操作を必要としないのはファイル読み書きの2件です。

CVE-2026-124450と124490は、patients/demoのアクセス権があれば足ります。勧告によると、臨床・事務の多くの役割が持つ権限で、管理者権限も文書のアクセス権も要りません。勧告の筆者は、管理者権限のないFront Officeアカウントで実機確認しています。確認した環境は、FAX/SMSモジュールが有効で、FAXベンダーがRingCentralの構成です。SignalWireClientは、同じ検証の欠落をコードの確認で指摘しており、単独の実行はしていません。被害は、DB認証情報の漏えいによる患者記録全体の読み出しと、Webサーバーの実行ユーザーが書ける場所への任意ファイル書き込み、そこからのコード実行です。

CVE-2026-124469は、低権限のログイン済みユーザーがFee Sheetの商品行に定数のサブクエリを入れ、応答の時間差から少しずつデータを読み出します。被害は患者データとusers_secureのbcryptハッシュの流出です。

CVE-2026-124463は、CAMOSの権限を持つ利用者が悪意ある内容を保存し、別の利用者がそれを印刷したときに動きます。他の3件と違い、被害者の操作が必要です。被害は、印刷した利用者の権限での操作とデータの読み取りです。

今すぐやること

  1. 1

    OpenEMRを8.3.0に更新する

    4件とも8.3.0で修正されます。更新前にデータベースと設定ファイルのバックアップを取り、更新後にFAX/SMS・Fee Sheet・CAMOSの基本操作を確認します。

  2. 2

    侵害の跡がないか調べる

    Webサーバーのアクセスログで、disposeDocumentを呼ぶリクエストを探します。あわせて、OpenEMRのディレクトリやWeb公開ディレクトリに、身に覚えのない新しいファイルがないかを確認します。ログの場所は環境で異なるため、下はApacheの例です。

    grep -r "disposeDocument" /var/log/apache2/
  3. 3

    疑いがあれば認証情報を入れ替える

    不審なアクセスや見慣れないファイルがあれば、sqlconf.phpに書かれたデータベースのパスワードを変更します。パスワードのハッシュが読み出された可能性があるため、全利用者のパスワードも更新します。

  4. 4

    低権限アカウントを棚卸しする

    今回の脆弱性は、受付や事務などの低権限アカウントが起点になります。退職者や共用のアカウントを整理し、必要な役割だけに絞っておきます。

すぐ更新できないとき

更新までの間にできるのは、一部の脆弱性への措置にとどまります。FAX/SMSを使っていなければ、Modules > Manage Modulesでoe-module-faxsmsを無効にします。ファイル読み書きの2件の前提である、モジュールの有効化がなくなります。Fee SheetとCAMOSの2件には効かないため、ログインできる利用者の絞り込みや、VPNなどによる接続元の制限を併用し、8.3.0への更新を急いでください。

背景

OpenEMRはオープンソースの電子カルテ・診療所管理ソフトで、患者の基本情報、診療記録、会計(Fee Sheet)を一つのデータベースにまとめて扱います。sqlconf.phpはそのデータベースへの接続情報を持つ設定ファイルです。読み出されると、患者記録全体へのアクセスにつながります。

FAX/SMSモジュールは、過去にも脆弱性が出ています。勧告によると、CVE-2026-24848(ファイル書き込みからコード実行)とCVE-2026-33305(認可の回避)です。EtherFaxActionsはCVE-2026-24848のあとに強化されましたが、RCFaxClientとSignalWireClientには反映されませんでした。8.2.0の再構成でクラスが分かれたとき、強化の差が残ったことが今回の2件の背景です。

よくある質問

Q.CVE-2026-124463のCVSS v4が9.3と高いのですが、優先度を分けるべきですか。
A.分ける必要はありません。4件とも修正版8.3.0で解消するため、まとめて更新します。CVSS v3では8.7で、ほかの3件より低い評価です。
Q.OpenEMRがインターネットに公開されていなければ、急がなくてよいですか。
A.公開の有無にかかわらず、更新をお勧めします。4件とも起点はログイン済みの利用者で、院内の低権限アカウントや、乗っ取られたアカウントからも悪用できるためです。外部公開の環境では、先に更新してください。

まだ分かっていないこと

  • 実際の攻撃での悪用が確認されたかどうかは、公表されていません。
  • 8.3.0にはこの4件以外の修正も含まれるかどうかは、公表されていません。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

影響パッケージ

パッケージ影響を受ける版 → 修正版
openemropenemr
8.3.0 未満→ 8.3.0
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

OpenEMR before 8.3.0 contains a broken access control and path traversal vulnerability in the fax/sms module disposeDocument action via an unvalidated file_path parameter. Authenticated low-privilege users can read sqlconf.php to recover database credentials and write arbitrary files as the web user, enabling remote code execution.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく