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.
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.
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.
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.
output_name="${entry##*:}" ... dest_file="$ABI_DEST/${output_name}.json" ... echo "$abi" > "$dest_file"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.
Running the script without jq in a repository containing specially named artifact files could execute unintended Python code under the user's account.
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.
python3 -c "import json,sys; d=json.load(open('$artifact_path')); print(json.dumps(d['abi'], indent=2))"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].
The scripts can read local project files and generate or overwrite ABI JSON files as part of the build workflow.
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.
bash scripts/sync-abi.sh ... node scripts/abi-diff.js old/MyToken.json new/MyToken.json
Review the scripts and run them only in projects you trust, ideally after applying path validation fixes.
