概要
yt-dlpは、コマンドラインで動作するオーディオ/ビデオダウンローダーです。この度、yt-dlpの特定のバージョンにおいて、任意コマンドインジェクションの脆弱性(CVE-2026-26331)が報告されました。この脆弱性は、--netrc-cmdコマンドラインオプション、またはPython APIのnetrc_cmdパラメータを使用している場合に発生する可能性があります。
影響範囲
- 対象製品: yt-dlp
- 影響を受けるバージョン: バージョン2023.06.21以降、バージョン2026.02.21未満
- 影響を受けるユーザー:
--netrc-cmdオプションをコマンドや設定で使用しているユーザー、またはPythonスクリプトでnetrc_cmdパラメータを使用しているユーザーが影響を受けます。これらのオプションを使用していないユーザーは影響を受けません。
想定される影響
本脆弱性が悪用された場合、攻撃者は細工されたURLを介して、ユーザーのシステム上で任意のコマンドを実行する可能性があります。yt-dlpのメンテナーは、--netrc-cmdオプションまたはnetrc_cmdパラメータを使用しているユーザーにとって、この脆弱性の影響は高いと評価しています。悪意のあるURL自体は不審に見えるかもしれませんが、目立たないURLを持つ悪意のあるウェブページがHTTPリダイレクトを介してこの脆弱性を密かに悪用することも容易であると指摘されています。
攻撃成立条件・悪用状況
- 攻撃成立条件:
- yt-dlpの脆弱なバージョンを使用していること。
--netrc-cmdコマンドラインオプション、またはnetrc_cmdPython APIパラメータを使用していること。- ユーザーが悪意のある細工されたURLにアクセスすること。
- 悪用状況: 現時点では、この脆弱性が実際に悪用されたという証拠は確認されていないと報告されています。
推奨対策
今すぐできる対策
- yt-dlpのアップグレード:
本脆弱性は、yt-dlpバージョン2026.02.21で修正されています。速やかに最新バージョンへのアップグレードを強く推奨します。このバージョンでは、すべてのnetrcの「machine」値が検証され、予期しない入力に対してエラーが発生するようになっています。
一時的な緩和策
直ちにアップグレードが困難な場合は、以下の緩和策を検討してください。
--netrc-cmdオプションまたはnetrc_cmdパラメータの使用を避ける:これらのオプションやパラメータを使用しないことで、本脆弱性の影響を回避できます。
- プレースホルダー(
{})を渡さない:--netrc-cmd引数にプレースホルダー({})を渡さないようにしてください。
確認方法
- 現在使用しているyt-dlpのバージョンを確認してください。
- コマンドライン引数、設定ファイル、またはPythonスクリプト内で
--netrc-cmdオプションやnetrc_cmdパラメータが使用されていないか確認してください。
参考情報
- CVE-2026-26331 詳細: https://cvefeed.io/vuln/detail/CVE-2026-26331