{"id":"UBUNTU-CVE-2026-107378","details":"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.","modified":"2026-10-14T03:22:50.396095082Z","published":"2026-10-13T00:00:00Z","upstream":["CVE-2026-107378"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-107378"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-107378"},{"type":"REPORT","url":"https://github.com/Kozea/CairoSVG/commit/9d63f049f9988d0ddda3eb94564ac3a50a286523"},{"type":"REPORT","url":"https://github.com/Kozea/CairoSVG/commit/a4d585eb374724b79676e9cceaa9e9a1a4358565"},{"type":"REPORT","url":"https://github.com/Kozea/CairoSVG/releases/tag/2.9.1"},{"type":"REPORT","url":"https://github.com/Kozea/CairoSVG/security/advisories/GHSA-c3jg-qh8m-j3h2"}],"affected":[{"package":{"name":"cairo","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=esm-infra%2Fxenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.14.2-2ubuntu2","1.14.4-1","1.14.6-1","1.14.6-1ubuntu0.1~esm1","1.14.6-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"cairo-perf-utils","binary_version":"1.14.6-1ubuntu0.1~esm2"},{"binary_name":"libcairo-gobject2","binary_version":"1.14.6-1ubuntu0.1~esm2"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.14.6-1ubuntu0.1~esm2"},{"binary_name":"libcairo2","binary_version":"1.14.6-1ubuntu0.1~esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}},{"package":{"name":"cairo","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=esm-infra%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.14.10-1ubuntu1","1.15.8-2","1.15.8-3","1.15.10-2","1.15.10-2ubuntu0.1","1.15.10-2ubuntu0.1+esm1"],"ecosystem_specific":{"binaries":[{"binary_version":"1.15.10-2ubuntu0.1+esm1","binary_name":"cairo-perf-utils"},{"binary_name":"libcairo-gobject2","binary_version":"1.15.10-2ubuntu0.1+esm1"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.15.10-2ubuntu0.1+esm1"},{"binary_version":"1.15.10-2ubuntu0.1+esm1","binary_name":"libcairo2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}},{"package":{"name":"cairo","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=esm-infra%2Ffocal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.16.0-4","1.16.0-4ubuntu1","1.16.0-4ubuntu1+esm1"],"ecosystem_specific":{"binaries":[{"binary_version":"1.16.0-4ubuntu1+esm1","binary_name":"cairo-perf-utils"},{"binary_name":"libcairo-gobject2","binary_version":"1.16.0-4ubuntu1+esm1"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.16.0-4ubuntu1+esm1"},{"binary_name":"libcairo2","binary_version":"1.16.0-4ubuntu1+esm1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}},{"package":{"name":"cairo","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.16.0-5ubuntu1","1.16.0-5ubuntu2","1.16.0-5ubuntu2.1"],"ecosystem_specific":{"binaries":[{"binary_name":"cairo-perf-utils","binary_version":"1.16.0-5ubuntu2.1"},{"binary_name":"libcairo-gobject2","binary_version":"1.16.0-5ubuntu2.1"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.16.0-5ubuntu2.1"},{"binary_name":"libcairo2","binary_version":"1.16.0-5ubuntu2.1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}},{"package":{"name":"cairo","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.18.0-1","1.18.0-1ubuntu1","1.18.0-3","1.18.0-3build1"],"ecosystem_specific":{"binaries":[{"binary_name":"libcairo-gobject2","binary_version":"1.18.0-3build1"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.18.0-3build1"},{"binary_name":"libcairo2","binary_version":"1.18.0-3build1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}},{"package":{"name":"cairo","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/cairo?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.18.4-1build1","1.18.4-3"],"ecosystem_specific":{"binaries":[{"binary_name":"libcairo-gobject2","binary_version":"1.18.4-3"},{"binary_name":"libcairo-script-interpreter2","binary_version":"1.18.4-3"},{"binary_version":"1.18.4-3","binary_name":"libcairo2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-107378.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"},{"type":"Ubuntu","score":"medium"}]}