Abi Toolchain

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The ABI tools mostly match their stated purpose, but the sync script has unsafe path handling that could overwrite files outside the intended ABI folder if run on a malicious or mistaken project config.

Use this only after reviewing or patching scripts/sync-abi.sh. The ABI diff script appears straightforward, but the sync script should validate .abi-sync output names and safely pass paths to Python before being added to CI or automatic build hooks.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

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.

What this means

If the agent or CI runs this on a malicious or accidentally bad .abi-sync file, it could overwrite project files outside the ABI folder.

Why it was flagged

The output filename is taken from .abi-sync or ABI_CONTRACTS without rejecting slashes, absolute paths, or '..'. A crafted entry such as Contract:../../../package could cause the script to write outside the intended ABI destination.

Skill content
output_name="${entry##*:}" ... dest_file="$ABI_DEST/${output_name}.json" ... echo "$abi" > "$dest_file"
Recommendation

Reject output names containing '/', '\\', '..', or absolute paths; resolve the final path and verify it stays under ABI_DEST before writing; ask for confirmation before overwriting existing files.

What this means

Running the script without jq in a repository containing specially named artifact files could execute unintended Python code under the user's account.

Why it was flagged

When jq is unavailable, the script embeds artifact_path directly inside a Python command string. A path containing quotes could alter the Python code that runs.

Skill content
python3 -c "import json,sys; d=json.load(open('$artifact_path')); print(json.dumps(d['abi'], indent=2))"
Recommendation

Pass artifact_path as a Python argument or environment variable instead of interpolating it into code, for example using python3 - "$artifact_path" with sys.argv[1].

What this means

The scripts can read local project files and generate or overwrite ABI JSON files as part of the build workflow.

Why it was flagged

The skill documents local script execution. This is expected for ABI build tooling, but users should recognize it runs code from the skill in their project directory.

Skill content
bash scripts/sync-abi.sh ... node scripts/abi-diff.js old/MyToken.json new/MyToken.json
Recommendation

Review the scripts and run them only in projects you trust, ideally after applying path validation fixes.