
CWE-307: 過剰な認証試行の不適切な制限 深刻度
CVSS v3.1: 8.1 (High)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
このスコアは、影響を受ける認証フローのテスト中に観察された影響を反映しています。
Owncloud バージョン 10.16.3
影響を受けるWebDAVエンドポイントは、HTTPのAuthorization: Basicヘッダーを通じて認証情報を受け付けます。
リクエスト例:
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
Base64の値は以下を表します:
username:password
同じアカウントに対する認証失敗の繰り返しは、期待されるブルートフォース保護メカニズムをトリガーしません。
テスト中、複数回連続して無効な認証試行を送信しましたが、以下は観察されませんでした:
レート制限
段階的な認証遅延
一時的なアカウントロックアウト
HTTP 429 Too Many Requests
その後、有効な認証情報を使用した認証試行は引き続き受け入れられました。
ステップ1 — WebDAV認証フローへのアクセス
ownCloudに認証し、影響を受けるWebDAV認証フローを使用するプライベートドキュメント/共有へのアクセスを取得します。
影響を受けるエンドポイントにアクセスすると、サーバーはHTTP Basic認証チャレンジを提示します。
ステップ2 — 認証リクエストの観察
認証情報はHTTPのAuthorizationヘッダーを通じて送信されます:
Authorization: Basic <BASE64(username:password)>
ステップ3 — 認証試行の繰り返し実行
管理されたテストアカウントを使用して、無効なパスワードを含む認証リクエストを繰り返し送信します。
テスト認証情報の例:
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
リクエストはBurp Suite Intruderまたは他のHTTPテストツールを使用して再現できます。
ステップ4 — サーバーの動作の観察
複数回連続して認証に失敗した後も、サーバーは効果的なブルートフォース保護メカニズムを適用することなく、認証リクエストを受け付け続けます。
一時的なロックアウト、段階的な遅延、レート制限、またはHTTP 429 Too Many Requestsレスポンスは観察されません。
ステップ5 — 認証成功の確認
その後、正しい認証情報を使用したリクエストは通常どおり受け入れられます。
これは、認証失敗の繰り返しが、影響を受けるWebDAV認証メカニズムを通じた後続のパスワード推測試行を十分に制限していないことを示しています。
完全なテストを示す短いPoC動画がこの研究に含まれています。
影響を受けるWebDAV認証エンドポイントに到達できる攻撃者は、効果的なアプリケーションレベルのブルートフォース保護に遭遇することなく、ユーザーアカウントに対してパスワードを繰り返し試行できます。
パスワード推測が成功した場合、そのアカウントの権限とアクセス許可に応じて、標的のownCloudアカウントおよびその関連リソースへの不正アクセスにつながる可能性があります。
したがって、この脆弱性は、影響を受ける認証フローを通じて公開されているアカウントに対するオンラインパスワード推測攻撃の実現可能性を高めます。
同様の問題は以前に関連するNextcloud製品で報告されており、以下が割り当てられています:
CVE-2023-32319
参照:
HackerOne Report #1879549
この参照は、認証ブルートフォース保護の問題を比較するために提供されており、2つの脆弱性が同一であることを意味するものではありません。
WebDAV認証フローは、アプリケーションの既存のブルートフォース保護メカニズムと統合する必要があります。
推奨される制御には以下が含まれます:
各アカウントおよび/または送信元ごとに認証失敗試行を追跡する。
認証失敗の繰り返し後に段階的な遅延を適用する。
設定可能な最大連続失敗回数を適用する。
設定されたしきい値に達した後、それ以降の認証試行を一時的に拒否する。
レート制限がトリガーされた場合は、HTTP 429 Too Many Requests を返してください。
WebDAV で使用される HTTP Basic 認証を含む、すべての認証メカニズムにわたって保護を一貫して適用してください。
代替の認証メカニズムやエンドポイントを使用して、アプリケーションの既存のブルートフォース保護をバイパスできないようにしてください。
考えられるポリシーとしては、設定可能な連続失敗回数(たとえば 10 回の試行)に達した後、一時的に認証を制限することが挙げられます。正確なしきい値と制限期間は、アプリケーションのセキュリティ要件に応じて決定する必要があります。
ownCloud Server: https://github.com/owncloud/core
関連する脆弱性: CVE-2023-32319
HackerOne Report #1879549: https://hackerone.com/reports/1879549
Hoang126(ETC JSC セキュリティチームを代表)
セキュリティ研究および責任ある開示。
この研究は、セキュリティテストおよび責任ある開示を目的として実施されました。
テストは管理された環境に対して実施されました。第三者アカウントやデータへの不正アクセスは行われていません。