Claude Code, Skill
Secure Code Auditor
Secure Code Auditor, a skill listed in the PlugVet directory.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit df58e872c416, unchanged since the check below.
NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV PERMISSION_SHELL_DECLARED SECRETS_ENV_READ
Why this grade
- NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
scripts/dangerous_patterns.py, line 824
def fetch(url): - SECRETS_PATH_DOTENV Low
Mentions a .env file.
references/a04-cryptographic-failures.md, line 431
and the deployment and libraries files for `.env` hygiene. - PERMISSION_SHELL_DECLARED Note
Runs shell commands, and the manifest or description says so.
scripts/dangerous_patterns.py, line 756
os.system("rm -rf " + target) - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
scripts/dangerous_patterns.py, line 901
API_TOKEN = os.environ.get("API_TOKEN", "")
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
scripts/dangerous_patterns.py, line 756
os.system("rm -rf " + target)
scripts/dangerous_patterns.py, line 762
subprocess.run(cmd, shell=True)
scripts/dangerous_patterns.py, line 884
return subprocess.run("df -h | tail -n +2", shell=True, capture_output=True)
Show more
scripts/dangerous_patterns.py, line 929
"""Never write os.system("rm -rf /") or eval(user_input) here.
.github/workflows/validate-skill.yml, line 71
run = subprocess.run(
references/a05-injection.md, line 135
The word "near" fails where a project wraps its sinks. Put `subprocess.run`
references/a05-injection.md, line 167
subprocess.run(f"wkhtmltopdf --title {report.label} out.pdf", shell=True)
references/a05-injection.md, line 196
subprocess.run(
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
scripts/dangerous_patterns.py, line 824
def fetch(url):
scripts/dangerous_patterns.py, line 825
return requests.get(url, verify=False)
scripts/dangerous_patterns.py, line 978
return requests.get(target, timeout=5)
Show more
scripts/dangerous_patterns.py, line 984
return urllib.request.urlopen(request.GET["url"])
scripts/dangerous_patterns.py, line 998
return requests.post(WEBHOOK_URL, json=payload, timeout=5)
references/a01-broken-access-control.md, line 805
`requests.get(url)` looks the same whichever side of the boundary `url` came
references/a07-authentication-failures.md, line 433
with urllib.request.urlopen(lookup, timeout=2) as response:
scripts/README.md, line 605
- `NET003` - a `requests`/`httpx` verb or `urllib.request.urlopen` call whose
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
scripts/dangerous_patterns.py, line 901
API_TOKEN = os.environ.get("API_TOKEN", "")
.gitignore, line 12
env/
references/a04-cryptographic-failures.md, line 431
and the deployment and libraries files for `.env` hygiene.
Show more
.gitignore, line 14
*.env
references/agent-operator-security.md, line 82
`.env` and each `.env.*` variant, `*.pem`, `*.key`, `~/.ssh`, `~/.aws`,
references/agent-operator-security.md, line 89
Read `.env.example` instead, for the variable names. A review needs the name
references/agent-operator-security.md, line 99
agent read `.env` through a shell command under an auto-approve mode, past
references/agent-operator-security.md, line 127
the rule on the resolved path. A `.env.example` link that points at `.env`
references/agent-operator-security.md, line 129
`.env` as a leaked secret in its own right, and not only as a file to refuse.
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit df58e872c416. requests shell access. The manifest names this permission. can reach a host that is not written as a fixed address. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: df58e872c4160986328a241f32a30b2235c539da
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.