Concrete CMS 9.5.1 がリリースされました。
本ページは以下の原文を翻訳・要約しています。
https://github.com/concretecms/concretecms/releases/tag/9.5.1
本バージョンでは、管理画面のご操作帽子、アンケートやエクスプレスの安全性向上など、運用時の安全性に関わる改善が中心となっています。
proc_open が無効化されている場合、ローカル sendmail を使ったメール送信が正常に動作しない可能性があります。proc_open が無効化されているサーバー環境では、ローカル sendmail を利用したメール送信に問題が発生する場合があります。該当環境では、SMTP サーバーを利用したメール送信設定が推奨されています。(thanks mlocati)AbstractDriver を継承していない場合、カスタム summary template のレンダリング時にエラーが発生する可能性があります。canViewRenderedSummaryTemplates 権限チェックへの対応が必要です。本バージョンでは、多数のセキュリティ修正が含まれています。
特に以下の機能を利用しているサイトでは、アップデートの優先度が高めとなっています。
主な修正内容は以下のとおりです。
※ 技術的・詳細な内容は後述の開発者向けの内容をご覧ください。
ptComposerFormLayoutSetControlCustomTemplate フィールドでパストラバーサル文字列が適切にサニタイズされない問題がありました。 Composer フォーム編集権限を持つ不正な管理者により、サーバー上の任意の読み取り可能なファイルが読み込まれる可能性がありました。 ファイルアップローダーの拡張子のみの検証と組み合わせることで、認証済みリモートコード実行につながる可能性があります。 CVSS v4.0 スコアは 9.4 です。ExpressEntryList ブロックコントローラーの安全でないデシリアライズにより、リモートコード実行につながる可能性がありました。 エリアにブロックを追加できる不正な管理者が、REST API 経由で _fromCIF === true の保護を回避し、悪意あるシリアライズ済みペイロードを filterFields カラムに注入できる可能性がありました。 CVSS v4.0 スコアは 8.9 です。/dashboard/extend/install/download/<remoteId> へのリクエスト処理時に CSRF トークンが検証されない問題がありました。 Marketplace に接続されたサイトでは、攻撃者が認証済み管理者に細工したページを開かせることで、任意の Marketplace パッケージをサーバーへダウンロードさせられる可能性がありました。 CVSS v4.0 スコアは 7.5 です。/dashboard/extend/update/do_update/<pkgHandle> で CSRF トークンが検証されず、認証済み管理者にパッケージ更新を実行させられる可能性がありました。 CVSS v4.0 スコアは 7.5 です。concrete/controllers/single_page/dashboard/extend/install.php の install_package() メソッドに CSRF 脆弱性がありました。 攻撃者が DIR_PACKAGES/<handle>/ 配下にパッケージを配置できる場合、認証済み管理者にそのパッケージをインストールさせ、リモートコード実行につながる可能性がありました。 CVSS v4.0 スコアは 7.5 です。/dashboard/extend/update/prepare_remote_upgrade/<remoteMPID> で CSRF トークンが検証されない問題がありました。 Marketplace 接続済みサイトで、攻撃者が対象 Marketplace アイテムIDに対応するリモートパッケージを制御できる場合、パッケージの PHP ファイルを上書きし、upgrade() メソッドを実行させられる可能性がありました。 CVSS v4.0 スコアは 7.5 です。do_update() メソッド側で検証されない問題がありました。 攻撃者が細工した POST リクエストにより、認証済み管理者にコア CMS アップデートを実行させる可能性がありました。 CVSS v4.0 スコアは 7.5 です。bulk_user_assignment.php に認可チェック不足があり、管理者グループへの権限昇格につながる可能性がありました。 該当する管理画面ページにアクセスできる認証済みユーザーが、任意のメールアドレスを任意のグループに追加したり、正規管理者を削除したりできる可能性がありました。 CVSS v4.0 スコアは 7.5 です。t() 翻訳ヘルパー経由で出力する際、HTML として扱われる可能性がありました。 CVSS v4.0 スコアは 7.3 です。/ccm/system/dialogs/file/usage/{fID} にアクセスし、ファイルを参照しているページID、ハンドル、URLなどを取得できる可能性がありました。 CVSS v4.0 スコアは 6.9 です。action_get_events がカレンダーの canView 権限を確認しておらず、制限されたイベント詳細が漏えいする可能性がありました。 CVSS v4.0 スコアは 6.3 です。/ccm/system/dialogs/file/usage/{fID} に IDOR と認証チェック不足があり、未認証ユーザーが内部サイト構造データを取得できる可能性がありました。 CVSS v4.0 スコアは 6.3 です。/ccm/frontend/conversations/message_detail に IDOR があり、未認証ユーザーが任意の会話メッセージ本文、添付ファイル、ダウンロードURLなどを取得できる可能性がありました。 CVSS v4.0 スコアは 6.3 です。/ccm/frontend/conversations/message_page に IDOR があり、未認証ユーザーが会話メッセージの内容を列挙・取得できる可能性がありました。 CVSS v4.0 スコアは 6.3 です。/ccm/frontend/conversations/get_rating に IDOR があり、任意のメッセージIDの存在確認および評価スコア取得ができる可能性がありました。 CVSS v4.0 スコアは 6.3 です。concrete/controllers/single_page/download_file.php の submit_password() メソッドで、権限付きファイルのダウンロード時に view_file 権限チェックが回避される問題がありました。 CVSS v4.0 スコアは 6.3 です。exEntryID パラメーターに IDOR があり、エクスプレスフォーム送信内容へ不正にアクセスできる可能性がありました。 CVSS v4.0 スコアは 6.3 です。optionID を送信することで、未認証ユーザーが制限付きアンケートへ投票できる可能性がありました。 CVSS v4.0 スコアは 6.3 です。/dashboard/reports/forms/legacy にアクセスできる管理者またはレポート閲覧者が細工された URL を開くことで、セッション内でペイロードが実行される可能性がありました。 CVSS v4.0 スコアは 6.0 です。DeleteFile コントローラーで CSRF トークンチェックが逆転しており、有効なトークンでエラーになり、無効または欠落したトークンで削除処理が進む問題がありました。 これにより、会話メッセージ編集権限を持つユーザーに対する CSRF 攻撃でファイル削除が可能になる恐れがありました。 CVSS v4.0 スコアは 2.3 です。AddMessage / UpdateMessage の attachments[] パラメーターに IDOR があり、ファイル権限バイパスにつながる可能性がありました。 会話に投稿できるユーザーが、CMS ファイルマネージャー内の任意のファイルIDを添付ファイルとして参照できる可能性がありました。 CVSS v4.0 スコアは 2.3 です。uIsActive=0 の無効化ユーザーでも OAuth 経由で認証し、有効な API トークンを取得できる可能性がありました。 CVSS v4.0 スコアは 2.3 です。Backend\File::approveVersion に CSRF があり、edit_file_contents 権限を持つユーザーに対して、攻撃者が選択した既存アップロード済みバージョンを公開させる可能性がありました。 CVSS v4.0 スコアは 2.3 です。concrete/controllers/dialog/logs/deleteconcrete/controllers/dialog/logs/bulk/deleteconcrete/controllers/dialog/page/bulk/deleteconcrete/controllers/dialog/page/bulk/cacheconcrete/controllers/dialog/page/bulk/designconcrete/controllers/dialog/event/duplicateconcrete/controllers/dialog/express/association/reorderconcrete/controllers/backend/file の addFavoriteFolder($id)concrete/controllers/backend/file の removeFavoriteFolder($id)concrete/controllers/backend/file の star()concrete/controllers/backend/file の rescan()concrete/controllers/backend/file の rescanMultiple()concrete/controllers/backend/file の approveVersion()cvName を経由した Stored XSS の問題がありました。 updateCollectionAliasExternal がサニタイズを回避していたことが原因です。 CVSS v4.0 スコアは 2.0 です。