vtk@9.0.2

VTK is an open-source toolkit for 3D computer graphics, image processing, and visualization

  • latest version

    9.7.1

  • first published

    8 years ago

  • latest version published

    1 months ago

  • licenses detected

  • Direct Vulnerabilities

    Known vulnerabilities in the vtk package. This does not include vulnerabilities belonging to this package’s dependencies.

    Fix vulnerabilities automatically

    Snyk's AI Trust Platform automatically finds the best upgrade path and integrates with your development workflows. Secure your code at zero cost.

    Fix for free
    VulnerabilityVulnerable Version
    • H
    Heap-based Buffer Overflow

    Affected versions of this package are vulnerable to Heap-based Buffer Overflow in the vtkWindBladeReader::LoadVariableData method in IO/Geometry/vtkWindBladeReader.cxx. An attacker can cause a deterministic crash, and on non-instrumented builds disclose heap-resident data through the output arrays, by supplying a .wind dataset whose binary byteCount field is between -3 and 3 so that FindVariableOffsets() computes BlockSize = byteCount / 4 as zero, after which block is allocated from that zero size while the read and grid iteration, driven by the attacker-controlled GRID_SIZE_X/Y/Z metadata, run past the allocation. This requires the application to open an untrusted .wind dataset through the WindBlade reader.

    How to fix Heap-based Buffer Overflow?

    There is no fixed version for vtk.

    [0,)
    • H
    Expired Pointer Dereference

    Affected versions of this package are vulnerable to Expired Pointer Dereference in the vtkPNGReader::ExecuteInformation method in IO/Image/vtkPNGReader.cxx. An attacker can crash a VTK application with a malformed PNG, because a libpng failure after the reader calls HandleLibPngError executes a longjmp back to a setjmp that helper established before returning, so the later fclose(fp) and png_destroy_read_struct cleanup dereference a stale fp whose stack frame has already been overwritten. Exploitation requires the application to load an untrusted PNG through the reader, and on glibc 2.24+ the _IO_vtable_check hardening can convert some attempts into a SIGABRT, a mitigation absent on glibc 2.24 and earlier and on other C libraries.

    How to fix Expired Pointer Dereference?

    There is no fixed version for vtk.

    [0,)
    • H
    Expired Pointer Dereference

    Affected versions of this package are vulnerable to Expired Pointer Dereference in the vtkPNGReader::vtkInternals::HandleLibPngError method in IO/Image/vtkPNGReader.cxx. An attacker can crash a VTK application with a malformed PNG that passes png_read_info header parsing but fails during png_read_image or png_read_end, because libpng then executes a longjmp back to a setjmp that HandleLibPngError established before returning, and the following fclose(fp) runs against a stale fp from the unwound frame. Exploitation requires the application to decode an untrusted PNG through the VTK PNG reader, and on glibc 2.24+ the _IO_vtable_check hardening can turn some cases into a SIGABRT, a mitigation that may be absent on other C libraries.

    How to fix Expired Pointer Dereference?

    There is no fixed version for vtk.

    [0,)
    • H
    Out-of-bounds Read

    Affected versions of this package are vulnerable to Out-of-bounds Read in the vtkChacoReader::InputGraph2 method in IO/Geometry/vtkChacoReader.cxx, which reads the 1-based neighbor vertex IDs from a Chaco graph's adjacency lists without validating each against NumberOfVertices. An attacker can read heap memory beyond the points array, and crash the process, by supplying a Chaco file whose adjacency entry references an out-of-range vertex, which becomes a point ID that GetCell() resolves through GetPoints() into a GetTuple(idsPtr[i], point) read past the array end. Reaching the read requires the application to parse the attacker-supplied Chaco file with vtkChacoReader and then access the resulting cell or point data.

    How to fix Out-of-bounds Read?

    There is no fixed version for vtk.

    [0,)
    • H
    Out-of-bounds Write

    Affected versions of this package are vulnerable to Out-of-bounds Write in the vtkDEMReader::ReadProfiles method in IO/Image/vtkDEMReader.cxx, which derives rowId and lastRow from the file-supplied profileId[0] and profileSize[0] of a USGS DEM B-record and never checks them against the grid's numberOfRows and numberOfColumns. An attacker can write past the end of the allocated vtkImageData buffer, and crash the process, by supplying a DEM file whose profile prefix drives the *(outPtr + columnId + row * numberOfColumns) store loop beyond the image bounds. Exploitation requires the application to parse the attacker-supplied .dem file with vtkDEMReader.

    How to fix Out-of-bounds Write?

    There is no fixed version for vtk.

    [0,)
    • H
    NULL Pointer Dereference

    Affected versions of this package are vulnerable to NULL Pointer Dereference in IO/Infovis/vtkXMLTreeReader.cxx due to missing checks of the return value of libxml2 API 'xmlDocGetRootElement'.

    How to fix NULL Pointer Dereference?

    Upgrade vtk to version 9.2.5 or higher.

    [0,9.2.5)