emo-img — Give Your AI Emotional Expression
Security checks across static analysis, malware telemetry, and agentic risk
Overview
The skill mostly matches its sticker-sending purpose, but its file-saving logic does not confine sticker names to the sticker folder.
Review or patch the path handling before installing. If you use it, avoid letting untrusted people choose sticker names or URLs, confirm the target chat before sending media, and remember that online sticker searches go to Tenor.
Static analysis
No static analysis findings were reported for this release.
VirusTotal
VirusTotal findings are pending for this skill version.
Risk analysis
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A malicious or careless prompt that influences the sticker name could cause the agent to create files outside the intended sticker collection under the user's account.
The CLI-provided sticker name is incorporated into a filesystem path without rejecting '..' or path separators, so a crafted name could write a copied/downloaded file outside the advertised sticker directory.
dest_name = name or src.stem
dest_file = STICKER_DIR / f"{dest_name}{src.suffix}"
...
dest_name = name or "sticker"
dest_file = STICKER_DIR / f"{dest_name}{ext}"Sanitize sticker names, reject path separators and '..', resolve the final path, and enforce that all writes stay under ~/.openclaw/stickers.
On affected systems, a network attacker could tamper with online sticker search or download responses, though the artifacts do not show execution of downloaded files.
If no certificate bundle is found, the helper falls back to disabling TLS certificate verification for Tenor searches and downloads.
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONEFail closed when certificate verification is unavailable, or clearly warn the user before using an unverified connection.
Sticker search terms may reveal a small amount of chat context to an external provider.
Online searches send the user's sticker search query to Tenor, which is consistent with the disclosed online-search feature.
url = f"https://tenor.googleapis.com/v2/search?{params}"Avoid using sensitive conversation text as sticker search terms, and use an appropriately scoped Tenor API key if configuring one.
If the local sticker index is corrupted or edited, the agent could send the wrong local file path as media.
A persistent local index controls which file paths the agent later treats as stickers to send.
Index file: `~/.openclaw/stickers/index.json` ... Local results have a `file` path ... use the `file` path directly
Validate indexed file paths before sending or removing stickers, and keep entries constrained to the sticker storage directory.
