OS command injection in Penpot SVG exporter via fill color
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-78.
Summary
Penpot before 2.18.0 passes a text object's fill-color value into a shell command that the SVG exporter runs through child_process.exec. A user who can edit a file can store shell metacharacters in the fill color and run commands with the exporter service's privileges when the file is exported. The same export can be triggered through a valid public share link to a malicious file. The flaw is classified as CWE-78.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Penpot is an open-source design and prototyping platform. Prior to 2.18.0, the SVG exporter places an attacker-controlled text object's fill-color value into a ppmcolormask command string and executes that string through child_process.exec. A user who can edit a file can store shell metacharacters in the fill color and trigger SVG export, causing commands to execute with the exporter service's privileges. The same export can be triggered through a valid public share link to a malicious file. This vulnerability is fixed in 2.18.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Penpot to version 2.18.0, which fixes this vulnerability.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA penpot (penpot) Fixed in 2.18.0
Timeline
- 2026-10-06 Threatist record created from CVE-2026-105691
- 2026-10-06 CISA SSVC decision points changed
- 2026-10-06 Priority changed: MEDIUM → HIGH
References
More penpot vulnerabilities
- TI-2026-32845 Penpot: Pre-authenticated account takeover via team-invitation token + prepare-register-profile CVSS 3.1CRITICAL 9.9
- TI-2026-35172 Penpot: Stored XSS via comment content, innerHTML renders unsanitized HTML CVSS 3.1HIGH 8.7
- TI-2026-33540 Penpot: MCP REPL server binds to 0.0.0.0 with unauthenticated /execute endpoint — RCE CVSS 3.1HIGH 8.8
- TI-2026-14441 Missing authorization in Penpot CVSS 3.1HIGH 7.5
- TI-2026-33541 Penpot: Authenticated SSRF in remote image import via create-file-media-object-from-url CVSS 3.1HIGH 7.7
- TI-2026-68333 SSRF guard bypass in Penpot via IPv6 transition addresses CVSS 4.0MEDIUM 6.0
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences