{
  "schemaVersion": 1,
  "site": "https://cveboard.org",
  "generatedAt": "2026-10-23T19:15:57.072Z",
  "lastRun": "2026-10-23T19:01:02.861Z",
  "liveDays": 14,
  "filters": {
    "kind": null,
    "exploited": false,
    "severity": null,
    "ecosystems": [],
    "tag": "python-pillow"
  },
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "incidents": [
    {
      "id": "cve-2026-96639",
      "url": "https://cveboard.org/i/cve-2026-96639",
      "urlPt": "https://cveboard.org/pt/i/cve-2026-96639",
      "json": "https://cveboard.org/i/cve-2026-96639.json",
      "kind": "vuln",
      "live": true,
      "knownExploited": false,
      "severity": "critical",
      "title": "Pillow multi-frame loaders can reuse stale native image storage after mode transitions",
      "summary": "Pillow multi-frame image loaders can retain native ImagingCore storage allocated for one frame while changing the Python-side image mode and decoder tiles for a later frame.",
      "titlePt": "Carregadores multi-frame do Pillow podem reutilizar armazenamento nativo de imagem obsoleto após transições de modo.",
      "summaryPt": "Carregadores de imagens multi-frame do Pillow podem reter o armazenamento nativo do ImagingCore alocado para um frame enquanto alteram o modo e os azulejos do decodificador da imagem do lado do Python para um frame posterior.",
      "affected": [
        {
          "vendor": "python-pillow",
          "product": "Pillow",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": ">= 11.0.0, < 13.0.0",
              "status": "affected",
              "lessThan": null,
              "lessThanOrEqual": null
            }
          ],
          "omitted": 0,
          "fixed": []
        }
      ],
      "omitted": 0,
      "references": [],
      "cwes": [
        {
          "id": "CWE-125",
          "name": "Out-of-bounds Read"
        },
        {
          "id": "CWE-787",
          "name": "Out-of-bounds Write"
        }
      ],
      "ssvc": null,
      "fix": "listed",
      "tags": [
        "python-pillow",
        "pip"
      ],
      "cves": [
        "CVE-2026-96639"
      ],
      "ghsa": "GHSA-v9pv-5gc8-w2m6",
      "cvss": {
        "score": 9.8,
        "version": "3.1",
        "by": "GitHub"
      },
      "epss": {
        "percentage": 0.00565,
        "percentile": 0.46227,
        "asOf": "2026-10-23",
        "by": "FIRST"
      },
      "packages": [
        {
          "ecosystem": "pip",
          "name": "Pillow",
          "vulnerable": ">= 11.0.0, < 13.0.0",
          "fixed": "13.0.0",
          "advisory": "GHSA-v9pv-5gc8-w2m6"
        }
      ],
      "vendor": "python-pillow",
      "product": "Pillow",
      "kev": null,
      "breach": null,
      "retracted": false,
      "sources": [
        {
          "label": "GitHub Advisory Database",
          "url": "https://github.com/advisories/GHSA-v9pv-5gc8-w2m6"
        }
      ],
      "publishedAt": "2026-10-22T16:00:15.000Z",
      "updatedAt": "2026-10-22T16:00:15.000Z"
    },
    {
      "id": "cve-2026-112393",
      "url": "https://cveboard.org/i/cve-2026-112393",
      "urlPt": "https://cveboard.org/pt/i/cve-2026-112393",
      "json": "https://cveboard.org/i/cve-2026-112393.json",
      "kind": "vuln",
      "live": true,
      "knownExploited": false,
      "severity": "critical",
      "title": "Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO",
      "summary": "Pillow can write attacker-chosen data past the end of a heap buffer when it saves a TIFF image to an in-memory destination such as io.BytesIO rather than to a file. The same code also copies leftover heap memory from the process into the saved file. Anyone who can supply an image to a service that opens it and re-saves it as TIFF this way can trigger this with default settings.",
      "titlePt": "Pillow: estouro de buffer de heap em _tiffWriteProc ao salvar TIFF em BytesIO",
      "summaryPt": "Pillow pode escrever dados escolhidos pelo atacante além do final de um buffer de heap quando salva uma imagem TIFF em um destino de memória, como io.BytesIO, em vez de em um arquivo. O mesmo código também copia memória de heap restante do processo para o arquivo salvo. Qualquer pessoa que possa fornecer uma imagem a um serviço que a abre e a re-salva como TIFF dessa maneira pode acionar isso com as configurações padrão.",
      "affected": [
        {
          "vendor": "python-pillow",
          "product": "Pillow",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": ">= 2.0.0, < 13.0.0",
              "status": "affected",
              "lessThan": null,
              "lessThanOrEqual": null
            }
          ],
          "omitted": 0,
          "fixed": []
        }
      ],
      "omitted": 0,
      "references": [
        {
          "url": "https://github.com/python-pillow/Pillow/security/advisories/GHSA-332p-7hrc-92wf",
          "tag": "exploit"
        }
      ],
      "cwes": [
        {
          "id": "CWE-122",
          "name": "Heap-based Buffer Overflow"
        }
      ],
      "ssvc": {
        "exploitation": "poc",
        "automatable": "no",
        "impact": "total",
        "at": "2026-10-19T21:17:12.786Z"
      },
      "fix": "listed",
      "tags": [
        "python-pillow",
        "pip"
      ],
      "cves": [
        "CVE-2026-112393"
      ],
      "ghsa": "GHSA-332p-7hrc-92wf",
      "cvss": {
        "score": 9.2,
        "version": "4.0",
        "by": "GitHub"
      },
      "epss": {
        "percentage": 0.00528,
        "percentile": 0.43894,
        "asOf": "2026-10-23",
        "by": "FIRST"
      },
      "packages": [
        {
          "ecosystem": "pip",
          "name": "Pillow",
          "vulnerable": ">= 2.0.0, < 13.0.0",
          "fixed": "13.0.0",
          "advisory": "GHSA-332p-7hrc-92wf"
        }
      ],
      "vendor": "python-pillow",
      "product": "Pillow",
      "kev": null,
      "breach": null,
      "retracted": false,
      "sources": [
        {
          "label": "GitHub Advisory Database",
          "url": "https://github.com/advisories/GHSA-332p-7hrc-92wf"
        }
      ],
      "publishedAt": "2026-10-21T21:28:09.000Z",
      "updatedAt": "2026-10-21T21:28:09.000Z"
    },
    {
      "id": "cve-2026-112900",
      "url": "https://cveboard.org/i/cve-2026-112900",
      "urlPt": "https://cveboard.org/pt/i/cve-2026-112900",
      "json": "https://cveboard.org/i/cve-2026-112900.json",
      "kind": "vuln",
      "live": true,
      "knownExploited": false,
      "severity": "critical",
      "title": "Pillow: Argument Injection in Ghostscript call, potentially leading into RCE",
      "summary": "PIL.EpsImagePlugin.Ghostscript() builds the Ghostscript command line using the input file path (fp.name) without sanitization, placing it at -f <infile>. A filename beginning with - is interpreted by Ghostscript as an option, giving command-line argument injection; chainable to RCE (see Impact). Reproduces with Pillow's default invocation (with -dSAFER enabled).",
      "titlePt": "Pillow: Injeção de Argumento na chamada do Ghostscript, potencialmente levando a execução remota de código",
      "summaryPt": "PIL.EpsImagePlugin.Ghostscript() constrói a linha de comando do Ghostscript usando o caminho do arquivo de entrada (fp.name) sem sanitização, colocando-o em -f <infile>. Um nome de arquivo começando com - é interpretado pelo Ghostscript como uma opção, permitindo a injeção de argumentos na linha de comando; encadeável para execução remota de código (veja Impacto). Reproduz com a invocação padrão do Pillow (com -dSAFER habilitado).",
      "affected": [
        {
          "vendor": "python-pillow",
          "product": "Pillow",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": ">= 2.6.0, < 13.0.0",
              "status": "affected",
              "lessThan": null,
              "lessThanOrEqual": null
            }
          ],
          "omitted": 0,
          "fixed": []
        }
      ],
      "omitted": 0,
      "references": [],
      "cwes": [
        {
          "id": "CWE-78",
          "name": "Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')"
        },
        {
          "id": "CWE-88",
          "name": "Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"
        }
      ],
      "ssvc": {
        "exploitation": "none",
        "automatable": "yes",
        "impact": "total",
        "at": "2026-10-20T14:43:22.235Z"
      },
      "fix": "listed",
      "tags": [
        "python-pillow",
        "pip"
      ],
      "cves": [
        "CVE-2026-112900"
      ],
      "ghsa": "GHSA-w889-685w-c8fh",
      "cvss": {
        "score": 9.2,
        "version": "4.0",
        "by": "GitHub"
      },
      "epss": {
        "percentage": 0.00431,
        "percentile": 0.36366,
        "asOf": "2026-10-23",
        "by": "FIRST"
      },
      "packages": [
        {
          "ecosystem": "pip",
          "name": "Pillow",
          "vulnerable": ">= 2.6.0, < 13.0.0",
          "fixed": "13.0.0",
          "advisory": "GHSA-w889-685w-c8fh"
        }
      ],
      "vendor": "python-pillow",
      "product": "Pillow",
      "kev": null,
      "breach": null,
      "retracted": false,
      "sources": [
        {
          "label": "GitHub Advisory Database",
          "url": "https://github.com/advisories/GHSA-w889-685w-c8fh"
        }
      ],
      "publishedAt": "2026-10-21T19:58:44.000Z",
      "updatedAt": "2026-10-21T19:58:44.000Z"
    },
    {
      "id": "cve-2026-112403",
      "url": "https://cveboard.org/i/cve-2026-112403",
      "urlPt": "https://cveboard.org/pt/i/cve-2026-112403",
      "json": "https://cveboard.org/i/cve-2026-112403.json",
      "kind": "vuln",
      "live": true,
      "knownExploited": false,
      "severity": "critical",
      "title": "Pillow: Heap buffer overflow in ImagingJpegDecode",
      "summary": "JpegImageFile.draft() — which Image.thumbnail() calls automatically — requests 1/2, 1/4 or 1/8 scaled JPEG output and shrinks self._size and the tile extents to match, so _setimage() allocates a single-row decode buffer of ceil(W/s) samples. ImagingJpegDecode() sets cinfo.scale_num/scale_denom, calls jpeg_start_decompress(), and then reads scanlines into that buffer without ever comparing cinfo.",
      "titlePt": "Pillow: transbordamento de buffer na heap em ImagingJpegDecode",
      "summaryPt": "JpegImageFile.draft() — que Image.thumbnail() chama automaticamente — solicita saída JPEG escalonada em 1/2, 1/4 ou 1/8 e reduz self._size e os limites do tile para corresponder, então _setimage() aloca um buffer de decodificação de linha única de ceil(W/s) amostras. ImagingJpegDecode() define cinfo.scale_num/scale_denom, chama jpeg_start_decompress(), e depois lê linhas de varredura para esse buffer sem nunca comparar cinfo.",
      "affected": [
        {
          "vendor": "python-pillow",
          "product": "Pillow",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "< 13.0.0",
              "status": "affected",
              "lessThan": null,
              "lessThanOrEqual": null
            }
          ],
          "omitted": 0,
          "fixed": []
        }
      ],
      "omitted": 0,
      "references": [
        {
          "url": "https://github.com/python-pillow/Pillow/security/advisories/GHSA-8g5g-8vmr-9782",
          "tag": "exploit"
        }
      ],
      "cwes": [
        {
          "id": "CWE-122",
          "name": "Heap-based Buffer Overflow"
        }
      ],
      "ssvc": {
        "exploitation": "poc",
        "automatable": "no",
        "impact": "total",
        "at": "2026-10-22T21:08:31.338Z"
      },
      "fix": "listed",
      "tags": [
        "python-pillow",
        "pip"
      ],
      "cves": [
        "CVE-2026-112403"
      ],
      "ghsa": "GHSA-8g5g-8vmr-9782",
      "cvss": {
        "score": 9.2,
        "version": "4.0",
        "by": "GitHub"
      },
      "epss": {
        "percentage": 0.00321,
        "percentile": 0.23908,
        "asOf": "2026-10-23",
        "by": "FIRST"
      },
      "packages": [
        {
          "ecosystem": "pip",
          "name": "Pillow",
          "vulnerable": "<= 12.3.0",
          "fixed": "13.0.0",
          "advisory": "GHSA-8g5g-8vmr-9782"
        }
      ],
      "vendor": "python-pillow",
      "product": "Pillow",
      "kev": null,
      "breach": null,
      "retracted": false,
      "sources": [
        {
          "label": "GitHub Advisory Database",
          "url": "https://github.com/advisories/GHSA-8g5g-8vmr-9782"
        }
      ],
      "publishedAt": "2026-10-20T20:40:07.000Z",
      "updatedAt": "2026-10-20T20:40:07.000Z"
    }
  ],
  "tag": {
    "tag": "python-pillow",
    "name": "python-pillow",
    "kev": null
  }
}