Intranet

PassAudited by ClawScan on May 10, 2026.

Overview

This appears to be a disclosed local HTTP file server, but users should notice that it can run CGI Python scripts, stay running in the background, and has some ambiguity in the documented served directory.

Install only if you want a local HTTP server. Keep it bound to localhost unless you have configured a strong token and host allowlist, enable CGI only for trusted scripts, verify which directory is actually served, and stop the background server when you are done.

Findings (5)

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.

What this means

A user could misunderstand which files are reachable over HTTP and accidentally place sensitive data under a served path.

Why it was flagged

This differs from SKILL.md's layout that describes `{workspace}/intranet/www/` as the webroot and `config.json` as not served. The inconsistency does not prove exposure, but users should verify the effective served directory because this skill handles local files and auth configuration.

Skill content
The server serves files from a configurable root directory, created automatically if it doesn't exist.

Always `{workspace}/intranet/`
Recommendation

Before using the server, confirm the actual webroot in practice and keep secrets, tokens, and private files outside any directory being served.

What this means

If CGI is enabled for untrusted or exposed content, Python code may run with the user's local permissions.

Why it was flagged

The skill intentionally supports executing Python CGI entry points. This is central to the stated purpose and is gated by configuration, but it means HTTP requests can trigger local code execution when enabled.

Skill content
CGI Execution

**Off by default.** Enable in `config.json`:

```json
{
  "cgi": true
}
```

When enabled, only files named `index.py` can execute as CGI
Recommendation

Leave CGI disabled unless needed, enable it only for trusted `index.py` files, and use token authentication and host allowlists before exposing the server beyond localhost.

What this means

Files and CGI endpoints can become reachable from other machines if the user starts the server on `0.0.0.0`.

Why it was flagged

The skill can bind the HTTP server to all interfaces for LAN access. The artifact documents safeguards, so this is purpose-aligned, but it increases exposure if misconfigured.

Skill content
python3 {baseDir}/scripts/intranet.py start --host 0.0.0.0            # LAN access (requires token + allowed_hosts)
Recommendation

Use the default `127.0.0.1` binding for local-only use. If LAN or tunnel access is needed, configure a strong token and restrictive `allowed_hosts` first.

What this means

Anyone who can read the workspace runtime/config files may be able to authenticate to the local server.

Why it was flagged

The server stores the bearer token in its runtime configuration file under the workspace. This is expected for the local authentication feature, but the token should be treated as sensitive.

Skill content
if token:
        config["token"] = token
    _write_config(config)
Recommendation

Use a non-guessable token, protect workspace file permissions, and avoid committing `config.json` or runtime config files containing tokens.

What this means

The HTTP server may continue running after the initial command completes until explicitly stopped.

Why it was flagged

The skill intentionally starts a background server process and records its PID. This is disclosed and paired with `status` and `stop` commands, so it is purpose-aligned rather than hidden persistence.

Skill content
# Fork to background
    pid = os.fork()
    if pid > 0:
        # Parent process
        _write_pid(pid)
        print(f"[intranet] Server started (PID {pid})")
Recommendation

Use `python3 scripts/intranet.py status` to check it and `python3 scripts/intranet.py stop` when finished.