T07 · Tool Hijacking and Spoofing
- Location
scripts/cli-wrapper.py:145- Finding
CLI Reports Scanning and Remediation Without Performing the Advertised Operations
- Content
View full analysis
Vulnerability Details
File Location:
scripts/cli-wrapper.py:145-164,scripts/cli-wrapper.py:205-238, andscripts/cli-wrapper.py:245-295
Vulnerability Type: Tool behavior spoofing and misleading success reporting
Risk Level: MediumThe affected behavior is represented by the following code:
python if args.path and Path(args.path).exists(): files = list(Path(args.path).rglob("*")) code_files = [f for f in files if f.is_file() and f.suffix in ['.py', '.tf', '.json', '.yaml', '.yml', '.js', '.ts']] print(f"\n📊 Repository Statistics:") print(f" Total files: {len(files)}") print(f" Code files: {len(code_files)}")python result = call_gomboc_api(query) account = result.get("account", {}) fix_events = account.get("fixEvents", {}).get("edges", []) if fix_events: print(f"\n✅ Generated {len(fix_events)} fix event(s)")python result = call_gomboc_api(query) account = result.get("account", {}) fix_events = account.get("fixEvents", {}).get("edges", []) if fix_events: print(f" Applied {len(fix_events)} remediation(s)") else: print(f" No remediations available") print(f"\n✅ Remediation complete") if args.commit: print(f" (In production: auto-commits are handled by GitHub)")Technical Analysis
The
scancommand enumerates local files but does not submit their content or the supplied path to a scanning operation. Thefixandremediatecommands query existing account-level fix events but do not generate fixes, modify files, create commits, or push changes.Despite this, the commands print messages such as “Generated,” “Applied,” and “Remediation complete.” These messages conflict with the documented claim that the wrapper performs local scanning and remediation. An automated caller cannot reliably distinguish actual remediation from a metadata query.
This is a tool-spoofing risk because a legitimate-looking security tool interface returns ...[truncated 984 chars]
- Remediation
View remediation
Remediation Suggestions
- Implement actual scan, fix-generation, and remediation API operations matching the documented interface.
- Pass an authenticated repository identifier or supported scan input rather than merely counting local files.
- Verify that returned events belong to the requested repository and current operation.
- Before reporting successful remediation, confirm that expected file changes or remote pull-request changes exist.
- Only report “applied” after an application operation succeeds and its result is verified.
- Return a nonzero exit status when no requested operation was performed.
- If the API does not support these operations, rename the commands to reflect their actual account-status behavior.
- Add integration tests that compare repository state before and after
fixandremediate. - Correct
SKILL.md,README.md, andSECURITY.mdso their claims precisely match implemented behavior.
