MEDIUM 6.5

CVE-2026-47155: vLLM Revision Pinning Supply-Chain Integrity Bypass (CVSS 6.5)

vLLM, a popular inference engine for large language models, has a supply-chain integrity vulnerability in versions before 0.22.0. When operators pin a specific model revision using deployment flags like --revision or --code-revision, vLLM may still load supporting files—such as dynamic code, GGUF model weights, image processors, or configuration files—from unpinned or default revisions instead of respecting the pinned revision. This means an operator could believe they are running a reviewed and approved version of a model, while vLLM silently loads unreviewed artifacts from elsewhere in the repository. An attacker with access to the model repository could inject malicious code or weights into these sibling artifacts, which would then be loaded even when the main model revision is pinned.

Source data · NVD / CISA · public domain

CVSS
3.1 · 6.5 MEDIUM · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N
Weaknesses (CWE)
CWE-345
Affected products
1 configuration(s)
Published / Modified
2026-06-22 / 2026-06-24

NVD description (verbatim)

vLLM is an inference and serving engine for large language models (LLMs). Prior to 0.22.0, vLLM's revision pinning controls do not consistently apply to all artifacts loaded for a model. A deployment that supplies --revision or --code-revision can still load dynamic code, GGUF files, image processors, retrieval side weights, or same-repository subfolder weights/config from an unpinned/default revision. This is a supply-chain integrity issue for pinned vLLM deployments. Operators can believe they are serving a reviewed model revision while vLLM resolves behavior-affecting nested or sibling artifacts outside that reviewed revision. This vulnerability is fixed in 0.22.0.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from incomplete revision pinning enforcement in vLLM's artifact resolution logic. While the --revision and --code-revision flags correctly pin the primary model artifacts, the engine's loading mechanisms for dependent resources—including GGUF quantized weights, dynamic code imports, image processor modules, retrieval augmented generation (RAG) side weights, and same-repository subfolder configurations—bypass or ignore the pinned revision constraint. These artifacts resolve to the repository's default branch or latest revision instead. The issue affects any deployment relying on revision pinning as a supply-chain control boundary. Fixed in version 0.22.0 by consistently applying revision constraints across all artifact loading paths.

Business impact

For organizations deploying vLLM in production, this vulnerability undermines a critical security control: the ability to lock model deployments to reviewed and approved revisions. This is especially problematic in regulated environments (finance, healthcare) or when serving proprietary models. An attacker gaining commit access to the model repository—or any insider with repository write permissions—could inject malicious code, poisoned weights, or manipulated configurations that load silently alongside a pinned 'safe' model revision. The impact ranges from model manipulation (inference poisoning, output corruption) to remote code execution if dynamic code modules are compromised. Organizations operating under the assumption that pinned revisions guarantee artifact integrity face unexpected exposure.

Affected systems

vLLM versions prior to 0.22.0 are affected. Any deployment using --revision or --code-revision flags to pin model revisions is at risk, particularly those serving models from shared or untrusted repositories. The vulnerability is most critical in multi-tenant or cloud-hosted vLLM deployments where model repositories may be accessed by or writable by multiple parties. Self-hosted vLLM instances behind trusted network boundaries have reduced but non-zero risk.

Exploitability

Exploitability requires write access to the model repository or its dependent artifact storage. For public models on platforms like Hugging Face, this typically means compromising a model maintainer's account or exploiting repository permissions. The attack is not remotely exploitable against a properly isolated vLLM instance without repository access, but it does not require knowledge of the pinned revision—the attacker simply poisons the default/latest artifacts, betting that they will be loaded. No user interaction is required; exploitation occurs automatically during model load. The CVSS score of 6.5 (MEDIUM) reflects the high integrity impact balanced against the prerequisite need for repository compromise.

Remediation

Upgrade vLLM to version 0.22.0 or later immediately. This version enforces revision pinning consistently across all artifact loading paths, ensuring that --revision and --code-revision flags apply uniformly to dynamic code, GGUF files, image processors, RAG weights, and configuration files. Review current pinned deployments to ensure they are operating on the patched version. Additionally, implement repository access controls to limit who can commit to model repositories, use code signing for critical model artifacts, and consider pinning to specific commit hashes rather than branch names to further tighten supply-chain controls.

Patch guidance

Upgrade vLLM from any pre-0.22.0 release to 0.22.0 or later. Test the upgraded version in a staging environment to confirm that existing deployments continue to function correctly; while the patch enforces stricter revision pinning, legitimate workflows should not be affected. If you are using a pre-release or development version of vLLM, verify the release notes against the official vLLM repository to confirm the fix is included. Container image tags and Python package versions should be explicitly pinned to 0.22.0+ in your deployment manifests.

Detection guidance

Audit your vLLM deployments to identify which versions are in use and whether they employ --revision or --code-revision flags. Monitor model repository access logs for unexpected commits or changes to dependent artifacts (especially in .gitignore'd or dynamically loaded paths). Implement file integrity monitoring on cached model artifacts to detect unauthorized modifications. In development and testing, verify that pinned revisions do not inadvertently load sibling or default-branch artifacts by inspecting the actual files served during inference. Logging and observability around artifact resolution can help detect if unintended revisions are being loaded.

Why prioritize this

Although the CVSS score is MEDIUM, this vulnerability should be prioritized higher in environments where model integrity is a compliance or security requirement. The attack vector—repository compromise—is not uncommon in open-source ecosystems, and the impact (code execution, model poisoning) is severe. Organizations using vLLM for sensitive applications should treat this as a high-priority patch. The fact that it is not yet in the CISA KEV catalog does not diminish its criticality for enterprises relying on pinned model revisions as a supply-chain control.

Risk score, explained

The CVSS 3.1 score of 6.5 (MEDIUM) reflects: high integrity impact (malicious code or weights can be injected), low confidentiality impact (the vulnerability does not leak data), zero availability impact, network-accessible attack surface, high attack complexity (requires repository write access), and no privileges or user interaction required. The score appropriately emphasizes that this is a supply-chain integrity issue rather than a direct confidentiality or availability breach, but the integrity impact and the stealthy nature of the attack (pinning is bypassed silently) warrant careful attention.

Frequently asked questions

If I am running vLLM with pinned revisions, am I definitely compromised?

Not necessarily. You are exposed if an attacker has write access to your model repository or if your model repository itself has been compromised. If you control the repository and have restricted access, the risk is lower. However, you should still upgrade to 0.22.0 immediately to ensure that revision pinning works as intended. Audit your repository access logs to confirm no unauthorized changes have been made to dependent artifacts.

What is the difference between --revision and --code-revision?

--revision pins the model weights and configuration to a specific revision in the repository, while --code-revision pins dynamic code modules. The vulnerability affects both flags because supporting artifacts (GGUF files, image processors, RAG weights) can still load from unpinned revisions even when either or both flags are set.

Does this vulnerability affect me if I download models and serve them from local storage?

No, if you have downloaded model artifacts and are serving vLLM from a local filesystem without accessing a remote repository, the vulnerability does not apply. The issue only affects deployments that allow vLLM to dynamically resolve and load artifacts from a repository during runtime.

Are public models on Hugging Face at risk of this exploit?

Hugging Face models are at risk if their maintainers' accounts are compromised or if the repository settings permit unauthorized commits. However, Hugging Face provides some protections such as verified creator badges and audit logs. The vulnerability is a reminder that pinning alone is not sufficient; you should also verify the integrity of model artifacts and stay informed of security updates from model publishers.

This analysis is provided for informational purposes and reflects publicly available vulnerability data as of the publication date. Organizations should verify patch availability and compatibility with their specific vLLM version and deployment configuration before applying updates. This is not a substitute for formal vulnerability assessment, and organizations should consult with their security teams and the official vLLM project documentation for authoritative guidance. SEC.co makes no warranties regarding the completeness or accuracy of this analysis. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).