Skip to content
Heist/ feed
Back to feed
High

FFmpeg Heap Out-of-Bounds Write via PNG/APNG eXIf Encoder

Type: advisorySources: OSV

FFmpeg through 8.1.2, fixed in commit b506faf, contains a heap out-of-bounds write vulnerability in the native PNG and APNG encoders that allows remote attackers to corrupt heap memory by supplying a crafted PNG image with a malicious eXIf chunk. Attackers can craft an eXIf chunk where multiple IFD entries reference the same large value payload, causing canonical serialization to expand the output far beyond the undersized allocation estimated by add_exif_profile_size(), resulting in png_write_chunk() writing tens of thousands of bytes past the buffer boundary, leading to deterministic heap corruption, process crash, and potentially arbitrary code execution.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-66040
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 11:23 UTC · Revision 1

Source evidence

FFmpeg Heap Out-of-Bounds Write via PNG/APNG eXIf Encoder

core-osv · Original source

Published 24 Jul 2026, 19:46 UTC

FFmpeg through 8.1.2, fixed in commit b506faf, contains a heap out-of-bounds write vulnerability in the native PNG and APNG encoders that allows remote attackers to corrupt heap memory by supplying a crafted PNG image with a malicious eXIf chunk. Attackers can craft an eXIf chunk where multiple IFD entries reference the same large value payload, causing canonical serialization to expand the output far beyond the undersized allocation estimated by add_exif_profile_size(), resulting in png_write_chunk() writing tens of thousands of bytes past the buffer boundary, leading to deterministic heap corruption, process crash, and potentially arbitrary code execution.

osv:CVE-2026-66040
Complete source record
{
  "id": "20def18a23fdffd4b0be1c7257e38e108b658f65f0a0e1b3f5f5281f2d1800d1",
  "url": "https://osv.dev/vulnerability/CVE-2026-66040",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "FFmpeg Heap Out-of-Bounds Write via PNG/APNG eXIf Encoder",
    "summary": "FFmpeg through 8.1.2, fixed in commit b506faf, contains a heap out-of-bounds write vulnerability in the native PNG and APNG encoders that allows remote attackers to corrupt heap memory by supplying a crafted PNG image with a malicious eXIf chunk. Attackers can craft an eXIf chunk where multiple IFD entries reference the same large value payload, causing canonical serialization to expand the output far beyond the undersized allocation estimated by add_exif_profile_size(), resulting in png_write_chunk() writing tens of thousands of bytes past the buffer boundary, leading to deterministic heap corruption, process crash, and potentially arbitrary code execution.",
    "evidence": "osv:CVE-2026-66040",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-66040",
      "aliases": [
        "CVE-2026-66040"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.ffmpeg.org/ffmpeg.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "38b88335f99e76ed89ff3c93f877fdefce736c13"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "8.1.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "n8.1.2",
            "n8.1.1",
            "n8.1",
            "n8.1-dev",
            "n7.2-dev",
            "n7.1-dev",
            "n6.2-dev",
            "n6.1-dev",
            "n5.2-dev",
            "n5.1-dev",
            "n4.5-dev",
            "n4.4-dev",
            "n4.3-dev",
            "n4.2-dev",
            "n4.1-dev",
            "n3.5-dev",
            "n3.4-dev",
            "n3.3-dev",
            "n3.2-dev",
            "n3.1-dev",
            "n2.9-dev",
            "n2.8-dev",
            "n2.7-dev",
            "n2.6-dev",
            "n2.5-dev",
            "n2.4-dev",
            "n2.3-dev",
            "n2.2-dev",
            "n2.0",
            "n2.1-dev",
            "n1.3-dev",
            "n1.2-dev",
            "n1.1-dev",
            "n0.12-dev",
            "n0.11-dev",
            "n0.8",
            "N"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-66040.json"
          }
        },
        {
          "ranges": [
            {
              "repo": "https://github.com/ffmpeg/ffmpeg",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "38b88335f99e76ed89ff3c93f877fdefce736c13"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:ffmpeg:ffmpeg:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "8.1.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "n8.1.2",
            "n8.1.1",
            "n8.1",
            "n8.1-dev",
            "n7.2-dev",
            "n7.1-dev",
            "n6.2-dev",
            "n6.1-dev",
            "n5.2-dev",
            "n5.1-dev",
            "n4.5-dev",
            "n4.4-dev",
            "n4.3-dev",
            "n4.2-dev",
            "n4.1-dev",
            "n3.5-dev",
            "n3.4-dev",
            "n3.3-dev",
            "n3.2-dev",
            "n3.1-dev",
            "n2.9-dev",
            "n2.8-dev",
            "n2.7-dev",
            "n2.6-dev",
            "n2.5-dev",
            "n2.4-dev",
            "n2.3-dev",
            "n2.2-dev",
            "n2.0",
            "n2.1-dev",
            "n1.3-dev",
            "n1.2-dev",
            "n1.1-dev",
            "n0.12-dev",
            "n0.11-dev",
            "n0.8",
            "N"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-66040.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:34.544571330Z",
      "provider": "osv",
      "references": [
        "https://code.ffmpeg.org/FFmpeg/FFmpeg",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/66xxx/CVE-2026-66040.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-66040",
        "https://www.vulncheck.com/advisories/ffmpeg-heap-out-of-bounds-write-via-png-apng-exif-encoder",
        "https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23786",
        "https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/b506fafec9a19fcbc2be5271875fd4a63d6615bc"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-122"
        ],
        "cna_assigner": "VulnCheck",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "last_affected": "8.1.2"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/66xxx/CVE-2026-66040.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-66040",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 502005,
  "published_at": "2026-07-24T19:46:25.959+00:00"
}