Craft CMSは、EntryTypesController経由でのbehavior injection (RCE)に対して脆弱です
プラットフォーム
php
コンポーネント
craftcms/cms
修正バージョン
5.9.11
GHSA-7jx7-3846-m7w7の修正(コミット395c64f0b80b507be1c862a2ec942eaacb353748)は`src/services/Fields.php`のみを修正しましたが、同じ脆弱なパターンが`EntryTypesController::actionApplyOverrideSettings()`に存在します。 `src/controllers/EntryTypesController.php`の381-387行目: ```php $settingsStr = $this->request->getBodyParam('settings'); parse_str($settingsStr, $postedSettings); $settingsNamespace = $this->request->getRequiredBodyParam('settingsNamespace'); $settings = array_filter(ArrayHelper::getValue($postedSettings, $settingsNamespace, [])); if (!empty($settings)) { Craft::configure($entryType, $settings); ``` `parse_str`からの`$settings`配列は、`Component::cleanseConfig()`なしで直接`Craft::configure()`に渡されます。これにより、元のアドバイザリと同じ攻撃ベクトルである`as `または`on `プレフィックス付きキーを介してYii2 behavior/event handlerを注入できます。 これを利用するには、Craftコントロールパネルの管理者権限が必要であり、`allowAdminChanges`が有効になっている必要があります。 攻撃者は、元のアドバイザリと同じガジェットチェーンを使用して、RCEを実現できます。 ユーザーは、この問題を軽減するためにCraft 5.9.11にアップデートする必要があります。
修正方法
公式パッチはありません。回避策を確認するか、アップデートを監視してください。