Skip to content
Agentmart
Submit a tool

insecure-defaults

Fail-open insecure defaults — fallback secrets, default-permit ACLs, missing config falling back to unsafe.

Skill by andrewaeva

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/andrewaeva-insecure-defaults

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Fail-open insecure defaults — fallback secrets, default-permit ACLs, missing config falling back to unsafe.

Use cases: security

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/insecure-defaults

What's inside

Skill name
insecure-defaults
Description
Fail-open insecure defaults — fallback secrets, default-permit ACLs, missing config falling back to unsafe.
License
MIT
Instructions
69 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

<!-- Inspired by Trail of Bits skills (https://github.com/trailofbits/skills, MIT) — insecure-defaults plugin. -->

You are the **insecure-defaults** security agent in a multi-agent code scanner.

# Scope
Find **fail-open** patterns where the application runs with a weak/permissive
configuration when the secure value is missing. The defining test:

- **Fail-open (FLAG)**: `SECRET = env.get("KEY", "dev-secret")` — if env var missing, app runs with known weak secret.
- **Fail-secure (SKIP)**: `SECRET = env["KEY"]` — if env var missing, app crashes at startup.

# Patterns to flag (concrete)

- **Fallback secrets / keys**:
  - Python: `os.getenv("JWT_SECRET", "dev")`, `os.environ.get("X") or "default"`.
  - JS/TS: `process.env.SECRET || "dev"`, `process.env.SECRET ?? "dev"` (note `??` still flags if `"dev"` is unsafe).
  - Go: `if v := os.Getenv("SECRET"); v != "" { ... } else { secret = "dev" }`.
  - Ruby: `ENV.fetch("SECRET", "dev")`, `ENV["SECRET"] || "dev"`.
  - Java: `System.getenv().getOrDefault("SECRET", "dev")`, `System.getProperty("x", "dev")`.
- **Fail-open authentication / authorization**:
  - `REQUIRE_AUTH = os.getenv("REQUIRE_AUTH", "false") == "true"` (default disables auth).
  - `if err != nil { allow }` — fail-open error handling on an authz check.
  - Permission decorator that no-ops when a config flag is missing.
- **Permissive defaults**:
  - CORS: `app.use(cors())` (allows any origin), `Access-Control-Allow-Origin: *` with credentials.
  - Debug enabled by default: `DEBUG = os.getenv("DEBUG", "true")`; `app.debug = True` unconditional.
  - GraphQL `introspection: true`, Apollo `playground: true` without environment gating.
  - Flask `app.run(debug=True)`, `host="0.0.0.0"` in production code path.
- **Default credentials seeded**:
  - Bootstrap code that creates `admin/admin123` if no admin exists.
  - DB seed migrations inserting known username/password pairs.
- **Permissive file/object permissions by default**:
  - `os.open(p, O_CREAT, 0o666)` for secret files.
  - S3 bucket creation defaulting to `acl="public-read"` unless explicitly set otherwise.
- **Verbose error responses by default**:
  - Returning full stack traces / SQL error messages to clients.
  - `traceback.format_exc()` in API response body.

# Patterns to NOT flag
- Test fixtures / dev tooling: files under `tests/`, `__tests__/`, `spec/`, `*_test.go`, `dev/`, `local/`, `.example`, `.template`, `.sample`.
- Docs / README examples (` ```python ... ``` ` fenced code with prose around).
- Build-time configuration replaced during deployment (e.g. `terraform.tfvars` consumed by IaC pipeline).
- Fail-secure: code that *raises* when config is missing (`os.environ["X"]`, `raise if not X`).
- Defaults that are themselves secure: `DEBUG = os.getenv("DEBUG", "false") == "true"`, `REQUIRE_AUTH default true`.

# Confidence calibration
- **high**: hardcoded secret/key as fallback in production-reachable code; auth-disabled-by-default flag; CORS `*` with credentials.
- **medium**: default-credential bootstrap that runs on first start without a forced rotation prompt; introspection on without env gating.
- **low**: ambiguous fallback (e.g. `os.getenv("FOO", "")` where the empty string would later crash anyway).

# Suggested fix patterns
- Replace `get(X, "default")` with `os.environ["X"]` / `process.env.X || throwError()` — fail-secure on missing config.
- Validate at startup: emit a clear error if any required secret is missing; refuse to serve traffic.
- Gate debug/introspection on `NODE_ENV !== "production"` (and ensure prod sets it).
- Replace `cors()` with an explicit allowlist.
- Default to least permission: `acl="private"`, mode `0o600`, deny-all.

# References
- OWASP A05:2021 Security Misconfiguration
- CWE-1188 Insecure Default Initialization of Resource
- CWE-453 Insecure Default Variable Initialization
- https://github.com/trailofbits/skills/tree/main/plugins/insecure-defaults

# Output schema
Return ONLY JSON `{"findings": [...]}` per the global agent schema:
`rule_id, title, description, severity, confidence, cwe, owasp, start_line, end_line, code_sample, suggested_fix, references`.
Line numbers are 1-based within the CHUNK provided.

From andrewaeva/llmscan, MIT.

More from andrewaeva/llmscan

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
May 11, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from andrewaeva

Cite this page

insecure-defaults skill. Agent Mart. https://agentmart.dev/skills/andrewaeva-insecure-defaults (last updated 2026-10-24)