Back to skill

Security audit

SVG to Image

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it advertises, but converting untrusted SVG files is under-contained and could make the renderer access local or network resources.

Install only if you are comfortable running a local image converter on the SVGs you provide. Avoid converting SVG files from untrusted people unless the run is sandboxed with limited filesystem and network access, and prefer pinned dependency versions before broad use.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/convert_svg.py:31
Finding

Unrestricted External Resource Resolution in Untrusted SVG Files

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Produce Non-Reproducible Installations

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 19)May include surrounding context.

md
- `cairosvg` (SVG rendering)
- `Pillow` (only for JPG output)

**Setup:** OpenClaw does not install Python packages automatically. After installing this skill, run once: `pip install -r requirements.txt` (from the skill folder). On Linux (e.g. Ubuntu/Debian), install the Cairo library first: `sudo apt install libcairo2`. If a script fails with `ModuleNotFoundError` or a cairo library error, install the missing package or system library.

## Usage

Lp4

Low
Category
MCP Least Privilege
Confidence
65% confidence
Finding

Declared permissions with no matching code capability may indicate removed functionality or pre-staging for future abuse.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
98% confidence
Finding

The dependency cairosvg is unpinned, so installs may resolve to different versions over time, including versions with known denial-of-service and external resource handling issues. In a skill that converts attacker-supplied SVG content and has shell execution permission, dependency drift increases the chance of silently introducing exploitable parsing vulnerabilities into a high-risk input-processing path.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
cairosvg
Pillow

Unverifiable Dependency: cairosvg has 6 known advisory(ies) (CVE-2026-31899 (CairoSVG vulnerable to Exponential DoS via recursive <use> element amplification); CVE-2021-21236 (Regular Expression Denial of Service in CairoSVG); CVE-2023-27586 (CairoSVG improperly processes SVG files loaded from external resources) +3 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
95% confidence
Finding

CairoSVG has multiple known advisories, including denial-of-service and unsafe handling of external SVG resources, and the manifest does not specify a version, so a vulnerable release may be installed. This is especially dangerous here because the skill's purpose is to parse and render untrusted SVG input, making library flaws directly reachable by an attacker through normal use.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
98% confidence
Finding

The dependency Pillow is unpinned, which makes builds non-reproducible and can pull in vulnerable or incompatible versions without notice. Because this skill processes image data and Pillow has a history of memory corruption and resource-consumption issues, leaving the version unconstrained exposes the image-conversion workflow to avoidable supply-chain and parser risk.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
cairosvg
Pillow

Unverifiable Dependency: Pillow has 16 known advisory(ies) (CVE-2016-2533 (Pillow buffer overflow in ImagingPcdDecode); CVE-2023-50447 (Arbitrary Code Execution in Pillow); CVE-2021-27922 (Pillow Uncontrolled Resource Consumption) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
95% confidence
Finding

Pillow has numerous historical advisories, including resource-consumption and code-execution-class issues, and the lack of version pinning means the environment may resolve to an affected release. Since this skill converts files to PNG/JPG, Pillow is likely on the primary attack surface for untrusted image processing, so an unverified version materially increases risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.