Back to skill
Skillv1.0.1
ClawScan security
Calculator · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousMar 3, 2026, 8:34 AM
- Verdict
- suspicious
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill does what it claims, but its calculator script uses Python eval on untrusted expressions in a way that can be abused to execute arbitrary code — it's coherent but unsafe as-distributed.
- Guidance
- This calculator is functionally correct but unsafe to run in environments where untrusted users or untrusted inputs can supply expressions. The immediate risk is arbitrary code execution via Python eval despite the attempt to restrict globals. Before installing or enabling this skill for agents that handle external input, either: (1) replace the eval-based evaluator with a safe expression evaluator (parse the expression to an AST and whitelist node types and function names, or use a vetted math-expression library such as numexpr, sympy's parsing with controlled locals, or a dedicated sandboxed evaluator), (2) add strict input validation that only allows digits, operators, parentheses, percent signs, and the exact function names listed (and rejects any '.' or '__' tokens and alphabetic characters outside the whitelist), or (3) run the script in a hardened sandbox where it has no access to sensitive files/credentials. If you are not comfortable with code changes, avoid using this skill in unattended or high-privilege agents. If you want, I can produce a patched version that evaluates expressions safely (AST-based whitelist) or suggest specific libraries and code examples for a secure implementation.
Review Dimensions
- Purpose & Capability
- okName, description, SKILL.md, and the included scripts/calc.py are consistent: the skill is an instruction-only calculator and the code implements the advertised math functions. No unrelated binaries, credentials, or external services are requested.
- Instruction Scope
- concernSKILL.md directs running scripts/calc.py with a user-provided expression. The script evaluates that expression with Python's eval. Although it passes an empty __builtins__ and a whitelist of functions, attribute traversal on evaluated objects (e.g. via numeric literals' __class__ / __subclasses__ chains) can be used to escape the intended sandbox and access file I/O or execute code. The instructions do not warn users or limit inputs.
- Install Mechanism
- okNo install spec or external downloads; the skill is instruction-only with a single local Python script. No network fetch or package installation occurs during use.
- Credentials
- okThe skill requests no environment variables, credentials, or config paths — this is proportional to a local calculator.
- Persistence & Privilege
- okalways is false and the skill is user-invocable; it does not request persistent system presence or modify other skills or system settings.
