OpenEMRに重大な脆弱性4件、修正版8.3.0が公開
OpenEMRの8.3.0より前の版に、患者データの流出やサーバー乗っ取りにつながる重大な脆弱性が4件見つかりました。修正版の8.3.0へ更新し、FAX/SMSモジュールの利用有無とアクセスログを確認してください。
同じ発表の脆弱性 4 件
この記事でまとめた分です。発表元の告知には、ほかの脆弱性も載っていることがあります。
- CVE-2026-124450 重大 9.9
- CVE-2026-124469 重大 9.9
- CVE-2026-124490 重大 9.4
- CVE-2026-124463 高 9.3
急ぎ度: 早めに
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 |
確かめ方
- 1OpenEMRの版を管理者に確認し、8.3.0より前なら4件すべての対象として扱います。
- 2管理画面のModules > Manage Modulesで、oe-module-faxsmsが有効かどうかを見ます。有効なら、FAX/SMSの2件の前提がそろいます。
- 3FAX/SMSモジュールの設定で、利用中のFAXベンダー(RingCentralかSignalWire)を確認します。
- 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
ログイン
OpenEMRの低権限アカウントでログインします。
-
2
機能の悪用
FAX/SMSモジュール、Fee Sheet、CAMOSのいずれかに、細工した入力を送ります。
-
3
情報の入手
sqlconf.phpのDB認証情報や、患者データ、パスワードハッシュが読み出されます。
-
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
OpenEMRを8.3.0に更新する
4件とも8.3.0で修正されます。更新前にデータベースと設定ファイルのバックアップを取り、更新後にFAX/SMS・Fee Sheet・CAMOSの基本操作を確認します。
-
2
侵害の跡がないか調べる
Webサーバーのアクセスログで、disposeDocumentを呼ぶリクエストを探します。あわせて、OpenEMRのディレクトリやWeb公開ディレクトリに、身に覚えのない新しいファイルがないかを確認します。ログの場所は環境で異なるため、下はApacheの例です。
grep -r "disposeDocument" /var/log/apache2/ -
3
疑いがあれば認証情報を入れ替える
不審なアクセスや見慣れないファイルがあれば、sqlconf.phpに書かれたデータベースのパスワードを変更します。パスワードのハッシュが読み出された可能性があるため、全利用者のパスワードも更新します。
-
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と高いのですが、優先度を分けるべきですか。
Q.OpenEMRがインターネットに公開されていなければ、急がなくてよいですか。
まだ分かっていないこと
- 実際の攻撃での悪用が確認されたかどうかは、公表されていません。
- 8.3.0にはこの4件以外の修正も含まれるかどうかは、公表されていません。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| openemropenemr |
8.3.0 未満→ 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
- advisory nvd.nist.gov
- advisory github.com
- web disclosure@vulncheck.com
- web disclosure@vulncheck.com
- web github.com