脆弱性
📰 過去報告:8/22
SENAITE.CORE の JSON API において、認証の欠如と不適切な入力の評価(Eval 注入)が組み合わさることにより、認証なしでリモートからコード実行が可能となる脆弱性が報告された。具体的には、`/@@API/update` ルートで適切な権限チェックが行われていないため、匿名ユーザーが API にアクセスできる状態にある。さらに、特定のフィールド値が Python の `eval()` 関数に直接渡される設計となっており、攻撃者が制御可能な入力によって任意の Python コードが Zope ワーカープロセス上で実行される。この問題は、既定の設定で匿名ユーザーに表示権限が与えられている場合に、ネットワーク経由で悪用が可能である。
8/22 報告の事例と同様、Python の eval 関数や認証不備に起因するリモートコード実行の脆弱性です。該当システムを利用中の場合は設定や権限の確認を推奨します。
対象ソフト
SENAITE.CORE は、オープンソースの実験情報管理システム (LIMS) であり、臨床データやラボ業務の管理に使用される。Plone フレームワークをベースに構築されている。
影響
攻撃者は、認証なしでサーバー上で任意のシステムコマンドを実行できる。これにより、実験データや患者データを含むデータベース (ZODB) の完全な読み書き、管理者アカウントの作成、ファイルシステムの操作、および外部ネットワークへの通信が行われ、組織の重要情報が漏洩したり、システムが完全に制御されたりする恐れがある。
対応策
推奨される対策として、`src/bika/lims/jsonapi/` 内のすべての状態変更を伴うルートに `AccessJSONAPI` 権限チェックを追加すること、および `src/bika/lims/jsonapi/__init__.py` や関連フィールドにおける `eval()` の使用を `json.loads()` に置き換えることが挙げられている。