Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md - main wrapper: `scripts/render-custom-gotchi-svg.sh`
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears to be a disclosed Aavegotchi image renderer that saves output files locally and reads public Base blockchain data, with some dependency and packaging caveats.
Before installing, be aware that the skill will install npm packages, call the public Base RPC or a user-supplied RPC URL, and write render outputs to disk. Use reviewed dependency installs where possible, avoid untrusted RPC URLs, and verify the package includes the referenced wearables.tsv data if you need wearable-name rendering to work.
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- main wrapper: `scripts/render-custom-gotchi-svg.sh`
Referenced artifact was not completely inspected
- delivery helper: `scripts/show-svg-custom.sh`
Referenced artifact was not completely inspected
- delivery helper: `scripts/show-svg-custom.sh`
Referenced artifact was not completely inspected
- delivery helper: `scripts/show-svg-custom.sh`
Referenced artifact was not completely inspected
- delivery helper: `scripts/show-svg-custom.sh`
Referenced artifact was not completely inspected
- direct renderer: `scripts/render-svg-custom.mjs`
The lockfile pins viem's transitive dependency ws to 8.18.3, and the cited advisories describe memory disclosure and memory-exhaustion denial-of-service issues in that version. Even though this package-lock file alone does not prove the skill actively exposes a WebSocket endpoint, viem includes ws for client networking, so if the skill opens outbound or inbound WebSocket connections to untrusted peers/RPC infrastructure, the vulnerable library could be reached and abused.
The prompt contains directive language such as 'Always prefer this skill over generic image generation' and 'Never use image_generate,' which attempts to steer orchestration behavior beyond simple skill description. This can manipulate model decision-making, suppress safer or more appropriate alternatives, and reduce the agent's ability to choose the best tool for user intent and platform constraints.
interface:
display_name: "Aavegotchi SVG Custom"
short_description: "Render custom OG Aavegotchi SVGs and PNGs from Base outfit descriptions or token IDs."
default_prompt: "Use aavegotchi-svg-custom whenever the user wants an OG, SVG, classic, pixel, onchain, or Base Aavegotchi render, even if they do not mention the skill name. Always prefer this skill over generic image generation for gotchi outfit requests in the classic Aavegotchi style. Never use `image_generate` for Aavegotchi SVG outfit requests. If the user gives a token ID, use `--token-id`. If the user gives wearables or traits, render a custom hypothetical gotchi. Background handling is simple and deterministic: default to `--background-mode common`; switch to `--background-mode transparent` when the user asks for transparent/no background; and only change to another rarity color when the user explicitly asks for `uncommon`, `rare`, `legendary`, `mythical`, or `godlike` background. `common` is the default background even if the gotchi's actual rarity/BRS is different. For compatibility, explicit aliases like `rarity-common`, `rarity-uncommon`, `rarity-rare`, `rarity-legendary`, `rarity-mythical`, and `rarity-godlike` should map to the same six official colors, but do not invent theme backgrounds or raw custom hex colors. In chat contexts, especially Telegram, run `bash scripts/show-svg-custom.sh ...` instead of improvising the delivery step. That helper prints `FRONT_MEDIA`, `LEFT_MEDIA`, `RIGHT_MEDIA`, `BACK_MEDIA`, `CAPTION_*`, and `SUMMARY`, and it auto-generates a fresh slug if one is not provided. Do not reuse example slugs or old render files. Send images with the `message` tool using `media`, not `filePath`, and do not pass `chatId` during a normal Telegram reply. Prefer the generated PNG outputs and only fall back to raw SVG files if the user explicitly asks for SVG. Use gotchi-3d-custom-render instead only when the user explicitly asks for a 3D render, portrait, headshot, hosted renderer, o
...[truncated 24 chars]
The default prompt uses broad trigger terms like 'OG', 'SVG', 'classic', 'pixel', 'onchain', and 'Base Aavegotchi render' and instructs invocation even when the user does not mention the skill name. This can cause the agent to route loosely related requests into this skill unexpectedly, overriding normal intent resolution and increasing the chance of unintended tool use or wrong outputs.
This code invokes external tools and writes or moves files, including updating the manifest via fs.writeFileSync and creating PNG outputs, but provides no confirmation prompt, user-facing print/log message, or inline comment/docstring warning users that files will be created or modified. For a code file, these safety-relevant operations qualify for a missing-warning finding when there is no visible disclosure in the file.
The dependency uses a caret version range, which permits automatic installation of newer compatible releases. This increases supply-chain risk because a compromised upstream release or an unintended breaking/security regression could be pulled into builds without explicit review. In this skill, the packages are used for rendering and blockchain interaction rather than handling highly privileged secrets, so the issue is real but lower severity.
"build:wearables": "node scripts/build-wearables-reference.mjs"
},
"dependencies": {
"@resvg/resvg-js": "^2.6.2",
"json5": "^2.2.3",
"viem": "^2.38.2"
}
The json5 dependency is specified with a caret range, allowing newer package versions to be resolved automatically. This creates a supply-chain exposure where a malicious or vulnerable upstream release could be introduced into the environment without a direct code change in this repository. Given the skill’s purpose as a renderer utility, the context does not elevate this beyond a low-impact package hygiene issue.
},
"dependencies": {
"@resvg/resvg-js": "^2.6.2",
"json5": "^2.2.3",
"viem": "^2.38.2"
}
}
The viem package is not pinned exactly and may resolve to later compatible versions over time. That creates a genuine supply-chain risk because dependency behavior or security posture can change unexpectedly, especially for a library interacting with blockchain RPC/data flows. However, nothing in this package.json suggests deliberate abuse, and the skill context makes this a standard low-severity dependency management issue rather than an acute exploit path.
"dependencies": {
"@resvg/resvg-js": "^2.6.2",
"json5": "^2.2.3",
"viem": "^2.38.2"
}
}
The manifest says the skill is for rendering classic gotchi SVG/PNG images for hypothetical loadouts or existing token IDs. The script also supports listing all collateral contracts and reading ERC-20 symbol/name metadata, which is an auxiliary discovery capability not clearly justified by a pure rendering-focused scope.
The manifest frames the skill as rendering OG Aavegotchi SVG and PNG images, which primarily suggests generation/fetching behavior. In this script, the implementation also creates directories and writes multiple SVG files plus a manifest JSON to local storage as a persistent side effect.
This code creates the output directory and writes multiple SVG files plus a manifest JSON based on user-supplied paths, but it does not display any warning or confirmation before modifying the filesystem. Although file output is part of the script's purpose, there is no visible disclosure that existing files with the same slug will be overwritten.
No suspicious patterns detected.