☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Vllm logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.8 🐛 CWE-436
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-12491

CVE-2026-12491 Supply Chain Attack in Vllm
📅 PUBLISHED: 2026-06-17 10:07 UTC 🔄 UPDATED: 2026-10-13 23:19 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: USA License: Commercial
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
4.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-12491 is a vulnerability in the vLLM open-source library for large language model inference. The flaw arises from improper handling of image metadata, specifically EXIF orientation and PNG transparency (tRNS) data, during image processing. When images are converted to RGB, transparency information may be implicitly discarded or remapped, leading to unexpected rendering of transparent pixels and distortion of input content. This can result in the model misinterpreting image content, potentially affecting the integrity of processed data. The vulnerability has a CVSS score of 0.0, indicating no immediate severity rating, but the potential for data integrity impact exists.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

vLLM is a Python package distributed via PyPI. Users should verify the integrity of their vLLM installation and monitor for updates. The vulnerability affects the image processing pipeline, which may be used in various applications relying on vLLM for inference.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (No severity assigned)
  • Attack Vector: Network (likely)
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required (user must provide a crafted image)
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low (potential misinterpretation of image content)
  • Availability Impact: None

The threat level is considered low due to the lack of a CVSS score and the requirement for user interaction. However, the potential for data integrity issues in AI/ML pipelines warrants attention.

Deep Dive & Mechanics

The vulnerability is rooted in how vLLM processes image metadata during conversion to RGB format. Specifically:

  1. EXIF Orientation: EXIF tags can specify image orientation (e.g., rotation, mirroring). Improper handling may cause the image to be rendered incorrectly, leading to misinterpretation by the model.
  2. PNG Transparency (tRNS): PNG images can have transparency data (tRNS chunk). When converting to RGB, this transparency is discarded or remapped, causing transparent pixels to become opaque or distorted.

This can lead to:

  • The model "seeing" different content than intended.
  • Distortion of input data, affecting inference results.
  • Potential for adversarial attacks where crafted images cause misclassification or other errors.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

# Vulnerable: Does not handle EXIF orientation or PNG transparency
def load_image(image_path):
    img = Image.open(image_path)
    img = img.convert("RGB")  # Discards transparency
    return img

Patched Code (Conceptual):

# Patched: Handles EXIF orientation and preserves transparency
def load_image(image_path):
    img = Image.open(image_path)
    # Apply EXIF orientation
    try:
        exif = img._getexif()
        if exif:
            orientation = exif.get(0x0112)
            if orientation == 3:
                img = img.rotate(180, expand=True)
            elif orientation == 6:
                img = img.rotate(270, expand=True)
            elif orientation == 8:
                img = img.rotate(90, expand=True)
    except (AttributeError, KeyError, IndexError):
        pass
    # Handle transparency
    if img.mode in ('RGBA', 'LA', 'P'):
        # Create white background and paste image
        background = Image.new('RGB', img.size, (255, 255, 255))
        background.paste(img, mask=img.split()[-1] if img.mode == 'RGBA' else None)
        img = background
    else:
        img = img.convert("RGB")
    return img

Exploitation & Lab Setup

Red Team

  1. Craft a malicious image: Create a PNG image with manipulated tRNS chunk or EXIF orientation data.
  2. Upload to vLLM service: Send the crafted image to a vLLM inference endpoint.
  3. Observe output: The model may misinterpret the image content, leading to incorrect results.

Example (Python):

from PIL import Image
import io

# Create a PNG with transparency
img = Image.new('RGBA', (100, 100), (255, 0, 0, 0))  # Fully transparent red
buf = io.BytesIO()
img.save(buf, format='PNG')
crafted_image = buf.getvalue()

# Send to vLLM endpoint (conceptual)
# requests.post('http://target:8000/infer', files={'image': crafted_image})

Blue Team

  1. Monitor image processing logs: Look for anomalies in image metadata.
  2. Validate image integrity: Use checksums or digital signatures for images.
  3. Implement input validation: Reject images with unexpected EXIF orientation or transparency data.

Detection Script:

import exifread
from PIL import Image

def validate_image(image_path):
    with open(image_path, 'rb') as f:
        tags = exifread.process_file(f)
        if 'Image Orientation' in tags:
            orientation = tags['Image Orientation'].values[0]
            if orientation not in [1, 3, 6, 8]:
                return False
    img = Image.open(image_path)
    if img.mode in ('RGBA', 'LA', 'P'):
        return False  # Reject images with transparency
    return True

Indicators of Compromise (IOCs)

  • File Hashes: (None provided)
  • Network Patterns: Unusual image uploads to vLLM endpoints.
  • Log Entries: Errors related to image processing or unexpected model outputs.
  • Process Anomalies: vLLM processes consuming excessive memory when processing images.

Detection Engineering

YARA Rule

rule CVE_2026_12491_vLLM_Image_Metadata
{
    meta:
        description = "Detects images with EXIF orientation or PNG transparency that may exploit CVE-2026-12491"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-12491"
    strings:
        $exif_orientation = { 01 12 }  // EXIF tag for orientation
        $png_trns = { 74 52 4E 53 }    // tRNS chunk in PNG
    condition:
        $exif_orientation or $png_trns
}

Sigma Rule

title: CVE-2026-12491 vLLM Image Metadata Exploitation
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2026-12491 via crafted images
author: Valters IT
date: 2026/01/01
logsource:
    category: application
    product: vllm
detection:
    selection:
        EventID: 1001  # Example event ID for image processing
        ImageMetadata|contains: 
            - 'EXIF'
            - 'tRNS'
    condition: selection
falsepositives:
    - Legitimate images with EXIF orientation
    - Legitimate PNG images with transparency
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-12491 vLLM Image Metadata Exploitation"; flow:to_server; content:"POST"; http_method; content:"/infer"; http_uri; content:"image"; http_client_body; pcre:"/(\x01\x12|\x74\x52\x4E\x53)/"; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Update vLLM: Apply patches when available from the vLLM project.
  2. Input Validation: Implement strict validation of image metadata before processing.
  3. Use Safe Libraries: Ensure image processing libraries (e.g., Pillow) are up-to-date.
  4. Monitor Logs: Watch for anomalies in image processing and model outputs.
  5. Network Segmentation: Isolate vLLM services from untrusted networks.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-12491/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.