Ad

CVE-2026-58076

HIGH CVSS 3.1: 8,8 EPSS 0.48%
Обновлено 18 августа 2026
Apache
Параметр Значение
CVSS 8,8 (HIGH)
Уязвимые версии 3.3.0 — 3.3.1
Устранено в версии 3.3.1
Тип уязвимости CWE-502 (Десериализация недоверенных данных)
Поставщик Apache
Публичный эксплойт Нет

Уровень сериализации Apache Airflow реконструировал узлы исключений, вызывая import_string() для имени класса, взятого из сериализованного BLOB-объекта, и создавая его экземпляр с аргументами из того же BLOB-объекта, без ограничений на то, что можно импортировать. `executor_config` оператора достигает этой ветки, поэтому автор Dag может поместить туда значение, которое вызывает импорт и вызов произвольного вызываемого объекта - например, `subprocess.check_output` или `builtins.eval` в варианте с префиксом `builtins`. Код выполняется в **Планировщике**, который восстанавливает сериализованные Dags в обычном цикле без каких-либо запросов, а также на **API-сервере** при любом аутентифицированном чтении Dag, например `GET /api/v2/dags/{dag_id}/details`. Оба являются компонентами, которые, как утверждает модель безопасности Airflow, никогда не должны выполнять код автора Dag, и оба содержат учетные данные базы данных метаданных и секрет подписи JWT.

Никакой конфигурации, отличной от стандартной, не требуется. Это **отличный от CVE-2026-33264** приемник, который охватывает только триггерную ветвь того же десериализатора: развертывания, обновленные в ответ на эту рекомендацию, по-прежнему затрагиваются через ветвь исключений и должны быть обновлены снова. Пользователям рекомендуется выполнить обновление до apache-airflow 3.3.1 или новее, что ограничивает импортируемый класс подклассом BaseException.

Показать оригинальное описание (EN)

Apache Airflow's serialization layer reconstructed exception nodes by calling `import_string()` on a class name taken from the serialized blob and instantiating it with arguments from the same blob, with no restriction on what could be imported. An operator's `executor_config` reaches that branch, so a Dag author could place a value there that causes an arbitrary callable to be imported and invoked -- for example `subprocess.check_output`, or `builtins.eval` on the `builtins`-prefixed variant. The code runs in the **Scheduler**, which reconstructs serialized Dags in its normal loop with no request involved, and in the **API server**, on any authenticated read of the Dag such as `GET /api/v2/dags/{dag_id}/details`. Both are components the Airflow security model states must never execute Dag-author code, and both hold the metadata database credentials and the JWT signing secret. No non-default configuration is required. This is a **different sink from CVE-2026-33264**, which covered only the trigger branch of the same deserializer: deployments that upgraded in response to that advisory are still affected through the exception branch and must upgrade again. Users are advised to upgrade to apache-airflow 3.3.1 or later, which restricts the imported class to a subclass of `BaseException`.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Apache Airflow
cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*
3.3.0 3.3.1