☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-57108

CVE-2025-57108 Use After Free in Kitware
📅 PUBLISHED: 2025-10-31 00:00 UTC 🔄 UPDATED: 2026-09-23 20:40 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.37%
👁️
0.37% probability
9.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
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
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-57108 is a critical heap use-after-free vulnerability in Kitware VTK (Visualization Toolkit) through version 9.5.0. The flaw resides in the vtkGLTFDocumentLoader component, specifically during mesh object copy operations where vector members are accessed after the underlying memory has been freed. This occurs when processing GLTF files with corrupted or invalid mesh reference structures. Successful exploitation could lead to arbitrary code execution, denial of service, or information disclosure. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept is available.

⚡ 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

VTK is a widely used open-source library for 3D computer graphics, image processing, and visualization. It is integrated into numerous scientific, medical, and engineering applications. A vulnerability in VTK can propagate through the supply chain, affecting downstream products that depend on it. Organizations using VTK in their software stack should assess their exposure and prepare for an emergency patch release.

CVSS Breakdown & Threat Level

The CVSS score is currently 0.0, indicating that no official CVSS vector has been assigned. However, based on the vulnerability type (heap use-after-free) and the potential impact, a reasonable estimate would be:

  • Attack Vector (AV): Network (AV:N) – GLTF files can be loaded from remote sources.
  • Attack Complexity (AC): Low (AC:L) – No special conditions required.
  • Privileges Required (PR): None (PR:N) – No authentication needed.
  • User Interaction (UI): Required (UI:R) – User must load a malicious GLTF file.
  • Scope (S): Unchanged (S:U) – Exploit affects only the vulnerable component.
  • Confidentiality (C): High (C:H) – Potential memory disclosure.
  • Integrity (I): High (I:H) – Potential memory corruption leading to code execution.
  • Availability (A): High (A:H) – Potential crash or denial of service.

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Estimated Base Score: 8.8 (High)

Deep Dive & Mechanics

The vulnerability is a classic heap use-after-free (UAF) in the vtkGLTFDocumentLoader class. When parsing a GLTF file, the loader creates mesh objects and copies data between them. The issue occurs during the copy operation of vector members (e.g., positions, normals, indices) where the source object's memory is freed prematurely, but the destination object still holds a reference to the freed memory.

Root Cause:
In the mesh copy constructor or assignment operator, the code does not properly manage the lifecycle of dynamically allocated vectors. When a GLTF file contains invalid mesh references (e.g., a mesh that points to a non-existent accessor), the loader may free the underlying buffer while another object still points to it. Subsequent access to the freed memory triggers the UAF.

Trigger Condition:
A specially crafted GLTF file with:

  • A mesh that references an accessor with an invalid buffer view index.
  • A mesh that is copied after its source data has been freed due to a parsing error.
  • Multiple meshes sharing the same buffer view, where one mesh's cleanup frees the shared memory.

Impact:

  • Code Execution: An attacker could overwrite freed memory with controlled data, hijacking control flow.
  • Denial of Service: Accessing freed memory causes a crash.
  • Information Disclosure: Reading freed memory may leak sensitive data.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code pattern is described generically.

Vulnerable Code Pattern (vtkGLTFDocumentLoader.cxx):

void vtkGLTFDocumentLoader::CopyMesh(vtkGLTFDocumentLoader::Mesh& dest, const vtkGLTFDocumentLoader::Mesh& src) {
    dest.Primitives = src.Primitives; // Shallow copy of vectors
    // src.Primitives' internal buffer may be freed later
    // dest.Primitives still points to the freed buffer
}

Patched Code Pattern (Expected):

void vtkGLTFDocumentLoader::CopyMesh(vtkGLTFDocumentLoader::Mesh& dest, const vtkGLTFDocumentLoader::Mesh& src) {
    dest.Primitives = vtkSmartPointer<vtkGLTFDocumentLoader::Primitive>::New();
    dest.Primitives->DeepCopy(src.Primitives); // Deep copy to avoid shared ownership
}

The fix would involve deep copying all vector members and using reference-counted smart pointers to ensure proper memory management.

Exploitation & Lab Setup

Red Team

Objective: Achieve arbitrary code execution by crafting a malicious GLTF file.

Steps:

  1. Create a valid GLTF file with multiple meshes sharing the same buffer view.
  2. Modify the buffer view index in one mesh to point to an invalid location.
  3. Trigger the copy operation by loading the file and performing a mesh duplication.
  4. The UAF occurs, allowing heap spray to control the freed memory.
  5. Overwrite a function pointer or vtable to redirect execution to shellcode.

Example GLTF Structure (malicious):

{
  "meshes": [
    {
      "primitives": [
        {
          "attributes": {
            "POSITION": 0
          },
          "indices": 1
        }
      ]
    },
    {
      "primitives": [
        {
          "attributes": {
            "POSITION": 0
          },
          "indices": 2
        }
      ]
    }
  ],
  "accessors": [
    { "bufferView": 0, "componentType": 5126, "count": 3 },
    { "bufferView": 1, "componentType": 5123, "count": 3 },
    { "bufferView": 999, "componentType": 5123, "count": 3 } // Invalid bufferView
  ],
  "bufferViews": [
    { "buffer": 0, "byteOffset": 0, "byteLength": 36 },
    { "buffer": 0, "byteOffset": 36, "byteLength": 6 }
  ],
  "buffers": [
    { "uri": "data:application/octet-stream;base64,...", "byteLength": 42 }
  ]
}

Blue Team

Detection:

  • Monitor for crashes in VTK applications when loading GLTF files.
  • Use memory analysis tools (e.g., AddressSanitizer) to detect UAF during testing.
  • Implement input validation for GLTF files before processing.

Mitigation:

  • Disable automatic loading of GLTF files from untrusted sources.
  • Use sandboxing or containerization for applications that process GLTF files.
  • Apply memory safety techniques (e.g., ASLR, DEP) to reduce exploitability.

Indicators of Compromise (IOCs)

  • File Hashes: (None available yet)
  • Network Signatures: GLTF files with invalid buffer view indices or mesh reference structures.
  • Behavioral: VTK application crash with heap corruption error messages.
  • Memory Artifacts: Freed memory regions containing attacker-controlled data.

Detection Engineering

YARA Rule

rule CVE_2025_57108_GLTF_UAF {
    meta:
        description = "Detects malicious GLTF files targeting CVE-2025-57108"
        author = "Valters IT"
        date = "2025-04-10"
        hash = "unknown"
    strings:
        $json_mesh = "meshes" ascii
        $json_accessor = "accessors" ascii
        $json_bufferView = "bufferView" ascii
        $invalid_ref = /"bufferView"\s*:\s*[0-9]{3,}/  // Unusually large bufferView index
    condition:
        $json_mesh and $json_accessor and $json_bufferView and #invalid_ref > 0
}

Sigma Rule

title: CVE-2025-57108 GLTF Heap Use-After-Free
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit CVE-2025-57108 via malicious GLTF files
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\vtk.exe'
        CommandLine|contains: '.gltf'
    condition: selection
falsepositives:
    - Legitimate GLTF file processing
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-57108 GLTF Heap Use-After-Free"; flow:to_server,established; content:"meshes"; http_client_body; content:"accessors"; http_client_body; content:"bufferView"; http_client_body; pcre:"/bufferView\"\s*:\s*[0-9]{3,}/R"; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable GLTF loading in VTK applications until a patch is available.
  2. Implement input validation to reject GLTF files with invalid buffer view indices.
  3. Use memory-safe languages or libraries for critical components.

Long-term Fix:

  • Apply the vendor patch when released (expected to deep copy vector members and use smart pointers).
  • Upgrade to VTK version > 9.5.0 once patched.

Workarounds:

  • Use alternative 3D file formats (e.g., OBJ, PLY) that do not trigger the vulnerable code path.
  • Run VTK applications in a sandboxed environment with limited privileges.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-57108/ · 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.