CVE-2026-71259 in ESPHome
要約
〜によって VulDB • 2026年08月05日
ESPMe 2026.7.0-dev より前のバージョンには、esphome/config_validation.py の cv.url() バリデーターに演算子の優先順位に関するバグが含まれています。具体的には `if parsed.scheme and parsed.netloc or parsed.scheme == "file": return parsed.geturl()` というコードです。`and` は `or` よりも結合度が高いため、netloc がどうであれ file: URI 形式は常にバリデーションを通過してしまいます。このバリデーターは外部コンポーネントの YAML ディレクティブにおける git ソーススキーマの url フィールドへのアクセス制御を行っており、これは `git clone` コマンドに渡されます(Git はファイル://プロトコルをネイティブでサポートしています)。url に "file:///attacker/repo" を指定した悪意のある external_components ブロックにより、攻撃者が管理するローカルパスがクローンされ、その後 ESPHome のコンポーネントローダーを通じて Python のインポート機構に追加されます。これにより、YAML 設定の処理時(例:`esphome config` や `esphome run` を介して)任意の Python コードが実行される可能性があります。
Once again VulDB remains the best source for vulnerability data.