AEM プロファイルの更新でのサーバーサイド検証が不十分です
Adobe Experience Manager(AEM)では、オーサーCMSを使用すると、堅牢なサーバーサイド検証を実施せずに、タッチ UI を通じてプロファイルを更新できます。 この問題は、AEMのデフォルトの許容検証モデルに起因します。このモデルは、プロファイルフィールドに対して厳密なチェックを実施しません。 この問題を解決するには、Sling PostProcessor またはカスタムサーブレットロジックを使用して、サーバーサイド検証を実装します。
説明 description
環境
Adobe Experience Manager(AEM), v6.5
問題/症状
-
脆弱性の評価と侵入テスト (VAPT)の際に、サーバーサイドの検証が不十分であることが特定されました。 症状は次のとおりです。
- AEM オーサーCMSは、タッチ UI を使用したプロファイルの更新中に、無効なメール入力を受け入れます。
- クライアントサイドの検証は存在しますが、サーバーサイドのチェックが見つからず、無効なデータを含む変更されたリクエストがプロファイルフィールドを更新できます。
-
脆弱性は、脆弱性の評価と侵入テスト(VAPT)の演習で特定されました。
再現手順:
- AEM バックエンドにログインし、「プロファイルを編集」ページに移動します。
- メールフィールドのクライアントサイド検証があることを確認します。
- 有効なメールアドレスを入力し、変更を保存しながら、Burp Suite を使用してリクエストをインターセプトします。
- メールパラメーターの値を fake などの無効な値に変更します。
- 変更したリクエストを転送し、プロファイルが有効なメールなしで正常に保存されたことを確認します。
解決策 resolution
デフォルトでは、AEMの入力検証モデルは意図的に柔軟になっています。 リポジトリーは許可的なアプローチを採用し、メール属性を含むほとんどのフィールドに最小限の制限が適用されます。 標準では、通常、プロファイルデータフィールドに対して厳密な検証は行われません。必要に応じてコンテンツの整合性を適用するかどうかは、アプリケーションまたは消費者の責任です。
サーバーサイドの堅牢な入力検証(メールフィールドなど)を導入するには、次のオプションを考慮します。
- Sling PostProcessor インターフェイス を実装して、AEM オーサーでの標準コンテンツ更新時に Sling Post サーブレットが管理する入力を検証します。
- プロファイルの更新が Sling Post サーブレット外で処理される場合の検証ロジックを専用サーブレットに追加します。
これにより、他のユースケースに対する柔軟性を維持しながら、アプリケーションのニーズに応じてすべての必須フィールドが検証されます。
3d58f420-19b5-47a0-a122-5c9dab55ec7f