---
id: CVE-2026-70659
title: >-
  stable-diffusion.cpp: Heap out-of-bounds write in the imatrix loader
  (`load_imatrix`) via a duplicate tensor name
summary: >-
  stable-diffusion.cpp is a pure C/C++ library for running diffusion model
  (Stable Diffusion, Flux, Wan, Qwen Image, Z-Image, and more) inference. From
  master-742-1a13107 until master-763-4fcc6fe, IMatrixCollector::load_imatrix in
  src/runt…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-787
  - CWE-1284
vendor: leejet
product: stable-diffusion.cpp
affected:
  - stable-diffusion.cpp < master-763-4fcc6fe
published: '2026-11-05'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T15:26:33.019Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-70659'
references:
  - url: >-
      https://github.com/leejet/stable-diffusion.cpp/security/advisories/GHSA-6q7q-2v9c-x8m7
    label: >-
      https://github.com/leejet/stable-diffusion.cpp/security/advisories/GHSA-6q7q-2v9c-x8m7
  - url: 'https://github.com/leejet/stable-diffusion.cpp/pull/1750'
    label: 'https://github.com/leejet/stable-diffusion.cpp/pull/1750'
  - url: >-
      https://github.com/leejet/stable-diffusion.cpp/commit/4fcc6fef10c6f686801c6e257b22cd6a3deb906b
    label: >-
      https://github.com/leejet/stable-diffusion.cpp/commit/4fcc6fef10c6f686801c6e257b22cd6a3deb906b
  - url: >-
      https://github.com/leejet/stable-diffusion.cpp/releases/tag/master-763-4fcc6fe
    label: >-
      https://github.com/leejet/stable-diffusion.cpp/releases/tag/master-763-4fcc6fe
tags:
  - cve.org
ingestedAt: '2026-11-05T21:36:00.901Z'
---

## Overview

stable-diffusion.cpp is a pure C/C++ library for running diffusion model (Stable Diffusion, Flux, Wan, Qwen Image, Z-Image, and more) inference. From master-742-1a13107 until master-763-4fcc6fe, IMatrixCollector::load_imatrix in src/runtime/imatrix.cpp reuses the values and counts vectors for entries with the same tensor name but resizes them only when they are empty. An untrusted .imatrix file can provide a small nval for the first entry and a larger nval for a second entry with the same name, causing the accumulation loop to write attacker-controlled floating-point and integer values beyond both heap buffers. Loading the file through the --imat-in conversion path can corrupt the heap or crash the process before a model is required. This issue is fixed in master-763-4fcc6fe.

## Affected

- `stable-diffusion.cpp < master-763-4fcc6fe`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
