Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

scanning-infrastructure-with-nessus

skill:mukul975/anthropic-cybersecurity-skills#scanning-infrastructure-with-nessus

Tenable Nessus is the industry-leading vulnerability scanner used to identify security weaknesses across network infrastructure including servers, workstations, network devices, and operating systems.

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 23:52 UTC at 54a7988

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

3
findings
high
highest severity
2
threat classes
4,532
files scanned
157/157
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding skill:skills/scanning-infrastructure-with-nessus:skills/scanning-infrastructure-with-nessus/SKILL.md:112:CRED
  • suspicious: finding skill:skills/scanning-infrastructure-with-nessus:skills/scanning-infrastructure-with-nessus/scripts/agent.py:46:EXFIL
  • suspicious: finding skill:skills/scanning-infrastructure-with-nessus:skills/scanning-infrastructure-with-nessus/scripts/process.py:37:EXFIL

Security findings 3

Data exfiltration

highContextual risklow confidence

agent.py disables TLS certificate verification for every Nessus API request when the SKIP_TLS_VERIFY environment variable is set, sending the session password and token over an unverified connection; it is opt-in and labeled for lab use, so intent is not established.

verify=not os.environ.get(
vector:code
Counter-argument considered

The code path matches the claim exactly: when SKIP_TLS_VERIFY=true is set, every request through _req, including the /session login that posts the username and password, runs with certificate verification disabled; the secure default makes it opt-in but does not neutralize the credential-exposure path, and no carve-out covers it.

Data exfiltration

highContextual risklow confidence

process.py's NessusScanner defaults verify_ssl to False, so the Nessus username and password posted to /session (and the session token on all later calls) cross the network without TLS certificate verification and can be intercepted by a network attacker.

def __init__(self, host: str, username: str, password: str, verify_ssl: bool = False):
vector:code
Counter-argument considered

Unlike the opt-in agent.py flag, NessusScanner defaults verify_ssl to False and the shipped main() instantiates it without an override while suppressing InsecureRequestWarning globally, so the /session login and token-bearing calls run unverified by default; no carve-out or declared claim covers this and the source-to-sink chain is concrete.

Credential access

highContextual risklow confidence

Step 4 of SKILL.md instructs the agent to authenticate to the Nessus API using `curl -k`, transmitting an administrator username and password with TLS certificate verification disabled, which would expose the credentials to interception if the endpoint were not the trusted local scanner; the bundled scripts repeat this pattern via SKIP_TLS_VERIFY and SSL-warning suppression.

curl -k -X POST https://localhost:8834/session
vector:instruction
Counter-argument considered

Step 4 explicitly instructs the agent to POST an administrator username and password using curl -k, disabling certificate verification; this is outside every carve-out, appears in no declared claim (D2-D6 cover only policy and credential configuration), and is a direct instruction chain into the curl command.

Refuted findings 1

Candidates the review stage examined and rejected, kept for transparency.

Persistence

criticalRefutedmedium confidence

The SKILL.md workflow instructs the agent to run `sudo systemctl enable nessusd`, a privileged host-config write that persists the Nessus daemon service across reboots; this is standard setup for the declared Nessus-scanning capability, so it is a real host-config-write instruction whose intent is plausibly legitimate.

sudo systemctl enable nessusd
Why it was refuted

Enabling nessusd is overt initial setup of the declared capability's own vendor daemon, labeled '# Start Nessus service' under 'Step 1: Initial Configuration', so the declared-core-capability carve-out applies and nothing is concealed or contradicts a declared claim; it persists the scanner the skill exists to operate, not any covert foothold.