CVE catalog

CVE-2026-107378

CairoSVG is an SVG converter based on Cairo, a 2D graphics library. Prior to 2.9.1, rendering an attacker-controlled SVG with a path containing many segments can cause quadratic CPU consumption in cai

[CVE catalog]

Severity
High · CVSS 8.7CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Published
Updated
Source
[NVD] · [CVE record]
EPSS
0.38% · Oct 25, 2026

CairoSVG is an SVG converter based on Cairo, a 2D graphics library. Prior to 2.9.1, rendering an attacker-controlled SVG with a path containing many segments can cause quadratic CPU consumption in cairosvg/path.py. The path tokenizer repeatedly slices and rescans the remaining path data, while draw_markers drains node.vertices with node.vertices.pop(0), causing repeated linear-time work. The svg2png, svg2pdf, and svg2ps APIs reach these operations during ordinary rendering, allowing a sub-megabyte SVG to consume substantial CPU and deny service to a rendering application. This issue is fixed in version 2.9.1.

Vulnerable and fixed packages

Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.

DistributionPackageReleaseVersionStatus
Debiancairosvgsid2.9.1-1fixed
Debiancairosvgforky2.9.1-1fixed
Debiancairosvgtrixie2.7.1-2vulnerable
Debiancairosvgbookworm2.5.2-1.1+deb12u1vulnerable
PyPIcairosvgNot reported0.1vulnerable
PyPIcairosvgNot reported0.1.1vulnerable
PyPIcairosvgNot reported0.1.2vulnerable
PyPIcairosvgNot reported0.2vulnerable
PyPIcairosvgNot reported0.3vulnerable
PyPIcairosvgNot reported0.3.1vulnerable
PyPIcairosvgNot reported0.4vulnerable
PyPIcairosvgNot reported0.4.1vulnerable
PyPIcairosvgNot reported0.4.2vulnerable
PyPIcairosvgNot reported0.4.3vulnerable
PyPIcairosvgNot reported0.4.4vulnerable
PyPIcairosvgNot reported0.5vulnerable
PyPIcairosvgNot reported1.0vulnerable
PyPIcairosvgNot reported1.0.1vulnerable
PyPIcairosvgNot reported1.0.10vulnerable
PyPIcairosvgNot reported1.0.11vulnerable
PyPIcairosvgNot reported1.0.12vulnerable
PyPIcairosvgNot reported1.0.13vulnerable
PyPIcairosvgNot reported1.0.14vulnerable
PyPIcairosvgNot reported1.0.15vulnerable
PyPIcairosvgNot reported1.0.16vulnerable
PyPIcairosvgNot reported1.0.17vulnerable
PyPIcairosvgNot reported1.0.18vulnerable
PyPIcairosvgNot reported1.0.19vulnerable
PyPIcairosvgNot reported1.0.2vulnerable
PyPIcairosvgNot reported1.0.20vulnerable
PyPIcairosvgNot reported1.0.21vulnerable
PyPIcairosvgNot reported1.0.22vulnerable
PyPIcairosvgNot reported1.0.3vulnerable
PyPIcairosvgNot reported1.0.4vulnerable
PyPIcairosvgNot reported1.0.5vulnerable
PyPIcairosvgNot reported1.0.6vulnerable
PyPIcairosvgNot reported1.0.7vulnerable
PyPIcairosvgNot reported1.0.8vulnerable
PyPIcairosvgNot reported1.0.9vulnerable
PyPIcairosvgNot reported2.0.0vulnerable
PyPIcairosvgNot reported2.0.0rc1vulnerable
PyPIcairosvgNot reported2.0.0rc2vulnerable
PyPIcairosvgNot reported2.0.0rc3vulnerable
PyPIcairosvgNot reported2.0.0rc4vulnerable
PyPIcairosvgNot reported2.0.0rc5vulnerable
PyPIcairosvgNot reported2.0.0rc6vulnerable
PyPIcairosvgNot reported2.0.1vulnerable
PyPIcairosvgNot reported2.0.2vulnerable
PyPIcairosvgNot reported2.0.3vulnerable
PyPIcairosvgNot reported2.1.0vulnerable
PyPIcairosvgNot reported2.1.1vulnerable
PyPIcairosvgNot reported2.1.2vulnerable
PyPIcairosvgNot reported2.1.3vulnerable
PyPIcairosvgNot reported2.2.0vulnerable
PyPIcairosvgNot reported2.2.1vulnerable
PyPIcairosvgNot reported2.3.0vulnerable
PyPIcairosvgNot reported2.3.1vulnerable
PyPIcairosvgNot reported2.4.0vulnerable
PyPIcairosvgNot reported2.4.1vulnerable
PyPIcairosvgNot reported2.4.2vulnerable
PyPIcairosvgNot reported2.5.0vulnerable
PyPIcairosvgNot reported2.5.1vulnerable
PyPIcairosvgNot reported2.5.2vulnerable
PyPIcairosvgNot reported2.6.0vulnerable
PyPIcairosvgNot reported2.7.0vulnerable
PyPIcairosvgNot reported2.7.1vulnerable
PyPIcairosvgNot reported2.8.0vulnerable
PyPIcairosvgNot reported2.8.1vulnerable
PyPIcairosvgNot reported2.8.2vulnerable
PyPIcairosvgNot reported2.9.0vulnerable
PyPIcairosvgNot reported2.9.1fixed
PyPIcairosvgNot reported0.1vulnerable
PyPIcairosvgNot reported0.1.1vulnerable
PyPIcairosvgNot reported0.1.2vulnerable
PyPIcairosvgNot reported0.2vulnerable
PyPIcairosvgNot reported0.3vulnerable
PyPIcairosvgNot reported0.3.1vulnerable
PyPIcairosvgNot reported0.4vulnerable
PyPIcairosvgNot reported0.4.1vulnerable
PyPIcairosvgNot reported0.4.2vulnerable
PyPIcairosvgNot reported0.4.3vulnerable
PyPIcairosvgNot reported0.4.4vulnerable
PyPIcairosvgNot reported0.5vulnerable
PyPIcairosvgNot reported1.0vulnerable
PyPIcairosvgNot reported1.0.1vulnerable
PyPIcairosvgNot reported1.0.10vulnerable
PyPIcairosvgNot reported1.0.11vulnerable
PyPIcairosvgNot reported1.0.12vulnerable
PyPIcairosvgNot reported1.0.13vulnerable
PyPIcairosvgNot reported1.0.14vulnerable
PyPIcairosvgNot reported1.0.15vulnerable
PyPIcairosvgNot reported1.0.16vulnerable
PyPIcairosvgNot reported1.0.17vulnerable
PyPIcairosvgNot reported1.0.18vulnerable
PyPIcairosvgNot reported1.0.19vulnerable
PyPIcairosvgNot reported1.0.2vulnerable
PyPIcairosvgNot reported1.0.20vulnerable
PyPIcairosvgNot reported1.0.21vulnerable
PyPIcairosvgNot reported1.0.22vulnerable
PyPIcairosvgNot reported1.0.3vulnerable
PyPIcairosvgNot reported1.0.4vulnerable
PyPIcairosvgNot reported1.0.5vulnerable
PyPIcairosvgNot reported1.0.6vulnerable
PyPIcairosvgNot reported1.0.7vulnerable
PyPIcairosvgNot reported1.0.8vulnerable
PyPIcairosvgNot reported1.0.9vulnerable
PyPIcairosvgNot reported2.0.0vulnerable
PyPIcairosvgNot reported2.0.0rc1vulnerable
PyPIcairosvgNot reported2.0.0rc2vulnerable
PyPIcairosvgNot reported2.0.0rc3vulnerable
PyPIcairosvgNot reported2.0.0rc4vulnerable
PyPIcairosvgNot reported2.0.0rc5vulnerable
PyPIcairosvgNot reported2.0.0rc6vulnerable
PyPIcairosvgNot reported2.0.1vulnerable
PyPIcairosvgNot reported2.0.2vulnerable
PyPIcairosvgNot reported2.0.3vulnerable
PyPIcairosvgNot reported2.1.0vulnerable
PyPIcairosvgNot reported2.1.1vulnerable
PyPIcairosvgNot reported2.1.2vulnerable
PyPIcairosvgNot reported2.1.3vulnerable
PyPIcairosvgNot reported2.2.0vulnerable
PyPIcairosvgNot reported2.2.1vulnerable
PyPIcairosvgNot reported2.3.0vulnerable
PyPIcairosvgNot reported2.3.1vulnerable
PyPIcairosvgNot reported2.4.0vulnerable
PyPIcairosvgNot reported2.4.1vulnerable
PyPIcairosvgNot reported2.4.2vulnerable
PyPIcairosvgNot reported2.5.0vulnerable
PyPIcairosvgNot reported2.5.1vulnerable
PyPIcairosvgNot reported2.5.2vulnerable
PyPIcairosvgNot reported2.6.0vulnerable
PyPIcairosvgNot reported2.7.0vulnerable
PyPIcairosvgNot reported2.7.1vulnerable
PyPIcairosvgNot reported2.8.0vulnerable
PyPIcairosvgNot reported2.8.1vulnerable
PyPIcairosvgNot reported2.8.2vulnerable
PyPIcairosvgNot reported2.9.0vulnerable
PyPIcairosvgNot reported2.9.1fixed
Opensusepython-CairoSVGtumbleweed2.9.1-1.1fixed

Fixed-version evidence

DistributionPackageTypeReleaseFixed versionUrgencyOriginBugs
Debiancairosvgsourcesid2.9.0-1not yet assignedNot reportedNot reported
Debiancairosvgsourceforky2.9.0-1not yet assignedNot reportedNot reported
Debiancairosvgsourcetrixie(unfixed)not yet assignedNot reportedNot reported
Debiancairosvgsourcebookworm(unfixed)not yet assignedNot reportedNot reported
PyPIcairosvgPyPINot reported2.9.1Not reportedPYSEC-2026-4204Not reported
PyPIcairosvgPyPINot reported2.9.1Not reportedGHSA-C3JG-QH8M-J3H2Not reported
Opensusepython-CairoSVGrpmtumbleweed2.9.1-1.1Not reportedOPENSUSE-SU-2026:12111-1Not reported

Notes

[trixie] cairosvg: Minor issue

OpenFactory catalog packages

[Debian 12 (Bookworm)]

  • [cairosvg]Affected
    Details (2)
    • 2.5.2-1.1+deb12u1 · all · bookworm

      Affected

      nvd · cairosvg · debian · bookworm; nvd · cairosvg · debian · 12

    • 2.5.2-1.1+deb12u1 · all · bookworm

      Affected

      nvd · cairosvg · debian · bookworm; nvd · cairosvg · debian · 12

  • Source package: [cairosvg]

    Details (2)
    • 2.5.2-1.1+deb12u1 · all · bookworm

      Affected

      nvd · cairosvg · debian · bookworm; nvd · cairosvg · debian · 12

    • 2.5.2-1.1+deb12u1 · all · bookworm

      Affected

      nvd · cairosvg · debian · bookworm; nvd · cairosvg · debian · 12

[Debian 13 (Trixie)]

  • [cairosvg]Affected
    Details (2)
    • 2.7.1-2 · all · trixie

      Affected

      nvd · cairosvg · debian · 13

    • 2.7.1-2 · all · trixie

      Affected

      nvd · cairosvg · debian · 13

  • Source package: [cairosvg]

    Details (2)
    • 2.7.1-2 · all · trixie

      Affected

      nvd · cairosvg · debian · 13

    • 2.7.1-2 · all · trixie

      Affected

      nvd · cairosvg · debian · 13

[openSUSE Tumbleweed]

  • Source package: [python-CairoSVG]

    Details (1)
    • 2.9.0-1.3 · noarch · tumbleweed

      Unknown · Fixed: 2.9.1-1.1

      Version impact unknown

      nvd · python-CairoSVG · opensuse · tumbleweed

  • Source package: [python-CairoSVG]

    Details (1)
    • 2.9.0-1.3 · noarch · tumbleweed

      Unknown · Fixed: 2.9.1-1.1

      Version impact unknown

      nvd · python-CairoSVG · opensuse · tumbleweed

Observed:

References