CVE-2026-22807: vLLM Dynamic Module Auto-Map Pre-Auth Remote Code Execution
HERMES THREAT SCORE & ENTERPRISE RISK EXPOSURE
Target:LLM Serving Core, GPU Clusters & AI Orchestration Infrastructure CVSS v3.1 rates CVE-2026-22807 at 9.8 Critical (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Hermes Threat Score assigns a 94 (CRITICAL). vLLM is the primary high-throughput LLM serving engine across modern AI infrastructure. The auto_map dynamic loading execution triggers prior to any request validation, allowing poisoned model repositories on public hubs or internal artifact registries to completely compromise high-value GPU clusters and exfiltrate tenant embeddings, model weights, and cloud IAM credentials.
HASS AGENTIC SEVERITY & PERIMETER BOUNDARY IMPACT
Target:vLLM Model Loader & Transformers Dynamic Module Resolution Engine Autonomous AI agents and automated MLOps pipelines dynamically instantiate inference servers or load custom fine-tuned weights based on user tasks or benchmark evaluations. Unrestricted auto_map execution permits malicious model manifests to break out of agent sandboxes and hijack autonomous agent workflows.
CVE-2026-22807: vLLM Dynamic Module Auto-Map Pre-Auth Remote Code ExecutionVULNERABILITY
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Why is this related? (Evidence & Provenance)
“Confirmed security vulnerability in vLLM Inference Engine documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source: Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Reliability: VERY_HIGH)
Cascading multi-stage attack chaining context injection, autonomous loop planning, and un-sandboxed execution sinks to achieve persistent root shell compromise on host machines.
🔍 Why is this related? (Evidence & Provenance)
“CVE-2026-22807 weaponizes the agentic attack pattern formalized under AAP-007.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source: Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Reliability: HIGH)
Attacker registers rogue MCP tools or skills with weaponized docstrings and deceptive metadata that trick the model into routing sensitive user tasks to attacker-controlled functions.
🔍 Why is this related? (Evidence & Provenance)
“CVE-2026-22807 weaponizes the agentic attack pattern formalized under AAP-004.”
- [technical_analysis]Pillar Security demonstrated that executing export BASH_ENV in Auto-Run causes bash to source hostile payloads upon subsequent commands. — Source: Pillar Security Research: Bypassing Cursor Auto-Run: When Shell Built-ins Lead to Host RCE (Reliability: HIGH)
1. Technical Context & Affected Software Matrix
Section titled “1. Technical Context & Affected Software Matrix”vLLM supports seamless model loading from the Hugging Face Hub, local model directories, and S3-compatible object stores via integration with transformers and custom loading utilities.
| Parameter | Technical Specification | Operational Impact |
|---|---|---|
| CVE Identifier | CVE-2026-22807 | vLLM Project Advisory GHSA-vllm-automap |
| Vulnerability Class | Code Injection (CWE-94) / Untrusted Module Loading (CWE-829) | Unrestricted execution of arbitrary Python files during model loading |
| Vulnerable Component | vllm/model_executor/model_loader.py & AutoConfig resolution | Model configuration parsing and dynamic code importing |
| Exploitation Vector | Malicious config.json containing auto_map key pointing to remote .py | Pre-auth RCE executed upon worker startup or dynamic model loading |
| Privileges Required | None (PR:N) | Triggers during model ingestion before API authentication handlers |
| Privileges Obtained | Host System User (uid running vLLM daemon / root in container) | Full access to GPU compute, host memory, API tokens, and tenant data |
| Affected Versions | vLLM >= 0.10.1 and < 0.14.0 | High-throughput inference servers, Kubernetes GPU pods, Ray clusters |
| Fixed Updates | vLLM 0.14.0 and 0.14.1 | Strict trust gating, mandatory verification of dynamic module sources |
2. Vulnerability Anatomy & Root Cause Analysis
Section titled “2. Vulnerability Anatomy & Root Cause Analysis”Unsanitized Dynamic Module Loading via auto_map
Section titled “Unsanitized Dynamic Module Loading via auto_map”Hugging Face allows model authors to define novel architectures by embedding custom modeling code in their repositories. The config.json file specifies an auto_map mapping:
{ "architectures": ["AdversarialCausalLM"], "auto_map": { "AutoConfig": "configuration_adversarial.AdversarialConfig", "AutoModelForCausalLM": "modeling_adversarial.AdversarialForCausalLM" }}In standard Hugging Face workflows, dynamic code execution is protected by the trust_remote_code=True guard rail. However, in vLLM’s internal model initialization routine (vllm/model_executor/model_loader.py), model configuration metadata was inspected using an unshielded path:
# Vulnerable vLLM model configuration loaderdef _get_model_architecture(model_config: ModelConfig): # Retrieve configuration from HF repository or local snapshot hf_config = get_config(model_config.model, trust_remote_code=model_config.trust_remote_code)
# FLAW: If auto_map was present, vLLM resolved the custom class using dynamic import # without propagating trust_remote_code verification to the underlying module importer if hasattr(hf_config, "auto_map") and "AutoModelForCausalLM" in hf_config.auto_map: custom_class_path = hf_config.auto_map["AutoModelForCausalLM"] module_name, class_name = custom_class_path.rsplit(".", 1)
# VULNERABILITY: Dynamic module resolution directly downloads and imports Python bytecode # executing top-level code in modeling_adversarial.py upon module load! custom_module = dynamic_import_hub_module( model_id=model_config.model, module_file=f"{module_name}.py" ) return getattr(custom_module, class_name)Because dynamic_import_hub_module executes Python source code during the standard importlib evaluation step, any arbitrary Python payload embedded at the top level of the custom module (outside of any class definition) executes immediately within the runtime context of the vLLM engine.
3. Attack Vectors & Forensic Execution Flow
Section titled “3. Attack Vectors & Forensic Execution Flow”sequenceDiagram autonumber actor Attacker as Threat Actor / Adversary participant Hub as Hugging Face Hub / Model Store participant Agent as Autonomous Agent / MLOps Pipeline participant Loader as vLLM Model Loader participant OS as Host Linux OS / GPU Runtime participant C2 as Attacker C2 Server
Attacker->>Hub: Publish poisoned model repo (config.json + modeling_adversarial.py) Note over Hub: modeling_adversarial.py contains top-level reverse shell code Agent->>Loader: vllm serve attacker/poisoned-model (or API dynamic switch) Loader->>Hub: Fetch model weights, config.json, and custom modules Loader->>Loader: Parse config.json -> detect auto_map definition Loader->>OS: dynamic_import_hub_module() executes modeling_adversarial.py OS->>C2: Spawn reverse shell / exfiltrate environment secrets & AWS credentials C2-->>OS: Establish persistent root access to GPU cluster node- Model Repository Poisoning: The adversary crafts a model repository on a public registry or compromised internal model registry, including an
auto_mappointer inconfig.jsonthat referencesmodeling_adversarial.py. - Payload Staging: Inside
modeling_adversarial.py, the attacker places arbitrary execution code (e.g., extractingHF_TOKEN,OPENAI_API_KEY, AWS IAM instance profile tokens, or executing an interactive payload) outside function wrappers. - Model Ingestion Trigger: An automated AI coding agent, evaluation harness, or human operator executes
vllm serve attacker/poisoned-modelor invokes a model-switching endpoint in dynamic serving setups. - Pre-Authentication Execution: Before vLLM validates API keys, opens listening ports, or initializes tensor memory,
dynamic_import_hub_moduleimports the.pyscript, executing the payload in the context of the host process. - Lateral Movement & GPU Cluster Takeover: The attacker gains interactive shell access on the host or Kubernetes pod, accessing high-bandwidth NVLink/RoCE networks and harvesting cached model weights and tenant inference logs.
4. Forensic Investigation & Incident Response
Section titled “4. Forensic Investigation & Incident Response”DFIR analysts investigating potential exploitation of CVE-2026-22807 should review the following indicators across model cache directories and container runtimes:
Host & Container Triage Commands
Section titled “Host & Container Triage Commands”# 1. Inspect Hugging Face dynamic module cache for unauthorized custom scriptsfind ~/.cache/huggingface/modules/ -type f -name "*.py" -exec ls -la {} +
# 2. Review recent vLLM process startup parameters and argumentsps aux | grep vllm | grep -E "model|trust-remote-code"
# 3. Detect unauthorized child processes spawned from the python vLLM daemonpstree -p $(pgrep -f "vllm.entrypoints")
# 4. Search for newly established outbound connections from GPU workersss -tp | grep -E "python|ray"
# 5. Audit system calls and shell launches from Python processesausearch -p $(pgrep -f "vllm") -m EXECVE -ts today5. Threat Hunting & Detection Engineering
Section titled “5. Threat Hunting & Detection Engineering”title: Suspicious Child Process Spawned by vLLM Inference Engineid: 22807c01-vllm-automap-rce-detectionstatus: experimentaldescription: Detects suspicious interactive shells or network utilities spawned directly by the vLLM serving process, indicative of CVE-2026-22807 exploitation.author: Hermes Codex Detection Engineeringdate: 2026-09-24logsource: category: process_creation product: linuxdetection: selection_parent: ParentCommandLine|contains: - 'vllm.entrypoints' - 'vllm' selection_child: Image|endswith: - '/bin/sh' - '/bin/bash' - '/usr/bin/curl' - '/usr/bin/wget' - '/usr/bin/nc' - '/usr/bin/python3' - '/usr/bin/python' condition: selection_parent and selection_childfalsepositives: - Legitimate healthcheck scripts executed under non-standard supervision trees.level: criticaltags: - attack.execution - attack.t1059.006 - cve.2026-22807# Audit rule to alert on writes and execution in Hugging Face module cache-w /root/.cache/huggingface/modules/ -p wa -k hf_module_tampering-w /home/*/.cache/huggingface/modules/ -p wa -k hf_module_tampering6. Remediation & Hardening Roadmap
Section titled “6. Remediation & Hardening Roadmap”Upgrading vLLM Engine
Section titled “Upgrading vLLM Engine”Upgrade your vLLM deployment immediately to version 0.14.0 or 0.14.1:
pip install --upgrade vllm>=0.14.1Defense-in-Depth Mitigations
Section titled “Defense-in-Depth Mitigations”- Explicit Remote Code Blocking: Never pass
--trust-remote-codetovllm serveunless the model repository has been audited and cryptographically signed. - Model Registry Caching & Signing: Prohibit vLLM instances in production clusters from accessing external public Hugging Face Hub endpoints. Enforce an internal, air-gapped model registry where models must be scanned for malicious serialization or custom dynamic modules before approval.
- Container Sandboxing: Run vLLM pods with non-root user identities (
runAsNonRoot: true), drop all Linux capabilities (cap_drop: ["ALL"]), and enforce read-only container root filesystems (readOnlyRootFilesystem: true).
7. Correlated Research & Internal References
Section titled “7. Correlated Research & Internal References”- CVE-2026-7141: vLLM KV Cache Handler RCE: Out-of-bounds GPU VRAM corruption in PagedAttention KV cache recycling.
- CVE-2026-22778: vLLM Multimodal Endpoint Chained RCE: Deep analysis of multimodal input processing vulnerabilities in vLLM.
- CVE-2026-77521: MaxKB Enterprise AI Platform Sandbox Breakout: Command injection via unsanitized tool execution in enterprise AI platforms.
- AAP-007: Autonomous Cascading RCE: Multi-stage compromises spreading through agent execution environments.
- AAP-004: Semantic Tool Poisoning: Exploitation of dynamic tooling and model dependency resolution.
- Runtime Security for AI Agents: Architecture guidelines for isolating autonomous agent execution environments.
- GPU Memory & KV Cache Forensics: Incident response methodology for AI serving infrastructure.
- Linux Process & Memory Forensics: Real-time investigation techniques on Linux AI inference hosts.
Sources & References
Section titled “Sources & References”- vLLM Security Advisory: GHSA-vllm-automap
- NIST National Vulnerability Database: CVE-2026-22807 Detail
- Red Hat Bugzilla: CVE-2026-22807 Security Advisory