Neckr0ik Security Fixer
Analysis
This fixer matches its security-remediation purpose, but it can automatically rewrite local skill files using an undeclared scanner module and lacks clear path containment.
Findings (4)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
file_path = Path(vuln.file) ... fix.file_path.write_text('\n'.join(new_lines), encoding='utf-8')The fixer uses the file path supplied by a vulnerability result and writes back to that path; the visible code does not show validation that the path remains inside the requested skill directory.
from audit import audit_skill, Vulnerability, Severity ... sys.path.insert(0, str(Path(__file__).parent))
The script depends on an audit module that is not included in the supplied file manifest and is not declared by the install metadata, yet that module controls which vulnerabilities and file paths are fixed.
def sanitize_for_prompt(text: str, max_length: int = 1000) -> str: ... sanitized = re.sub(r'[<>\{\}\[\]\\]', '', text)The documentation presents simple character stripping as a prompt-injection fix, which may be only a partial mitigation.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
print(f" Original: {fix.original_code[:80]}...")For hardcoded-secret findings, the original vulnerable code may include credential values and can be printed during dry-run output.
