← Back to scan
File as GitHub Issue repo: caddyserver/caddy

Push this scan report to caddyserver/caddy

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Workflow uses `secrets.SCORECARD_TOKEN` on a `pull_request` trigger

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT private-key Identified a Private Key, which may compromise cryptographic security and sensitive data … caddytest/a.caddy.localhost.key:1
CRIT MINED116 Workflow uses `secrets.MAINTAINER_LOGINS` on a `pull_request` trigger .github/workflows/auto-release-pr.yml:25
CRIT MINED116 Workflow uses `secrets.CI_USER` on a `pull_request` trigger .github/workflows/ci.yml:214
CRIT MINED116 Workflow uses `secrets.S390X_SSH_KEY` on a `pull_request` trigger .github/workflows/ci.yml:213
CRIT MINED116 Workflow uses `secrets.SCORECARD_TOKEN` on a `pull_request` trigger .github/workflows/scorecard.yml:58
HIGH MINED033 [MINED033] Go Recover Without Log: defer func() { recover() }() that silently swallows pa… modules/caddytls/distributedstek/distri…:209
HIGH MINED033 [MINED033] Go Recover Without Log: defer func() { recover() }() that silently swallows pa… modules/caddypki/maintain.go:29
HIGH MINED033 [MINED033] Go Recover Without Log: defer func() { recover() }() that silently swallows pa… modules/caddyhttp/reverseproxy/metrics.…:63
HIGH MINED016 [MINED016] Go Error Ignored: _, err := fn() with err not checked. Go anti-pattern. modules/caddyhttp/intercept/intercept.go:197
HIGH MINED016 [MINED016] Go Error Ignored: _, err := fn() with err not checked. Go anti-pattern. modules/caddyhttp/fileserver/command.go:78
HIGH MINED016 [MINED016] Go Error Ignored: _, err := fn() with err not checked. Go anti-pattern. listen.go:67
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … modules/caddyhttp/reverseproxy/metrics.…:72
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … internal/filesystems/map.go:55
HIGH SEC093 [SEC093] Go: exec.Command with non-literal: exec.Command(<var>) — variable command name a… cmd/packagesfuncs.go:267
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… cmd/packagesfuncs.go:286
HIGH MINED131 pre-commit hook `https://github.com/pre-commit/pre-commit-hooks` pinned to mutable rev `v… .pre-commit-config.yaml:16
HIGH MINED131 pre-commit hook `https://github.com/jumanjihouse/pre-commit-hooks` pinned to mutable rev … .pre-commit-config.yaml:12
HIGH MINED131 pre-commit hook `https://github.com/golangci/golangci-lint` pinned to mutable rev `v1.52.… .pre-commit-config.yaml:6
HIGH MINED131 pre-commit hook `https://github.com/gitleaks/gitleaks` pinned to mutable rev `v8.16.3` .pre-commit-config.yaml:2
HIGH GO-2026-5039 stdlib: GO-2026-5039 go.mod
HIGH GO-2026-5038 stdlib: GO-2026-5038 go.mod
HIGH GO-2026-5037 stdlib: GO-2026-5037 go.mod
HIGH GO-2026-4986 stdlib: GO-2026-4986 go.mod
HIGH GO-2026-4982 stdlib: GO-2026-4982 go.mod
HIGH GO-2026-4981 stdlib: GO-2026-4981 go.mod
HIGH GO-2026-4980 stdlib: GO-2026-4980 go.mod
HIGH GO-2026-4977 stdlib: GO-2026-4977 go.mod
HIGH GO-2026-4976 stdlib: GO-2026-4976 go.mod
HIGH GO-2026-4971 stdlib: GO-2026-4971 go.mod
HIGH GO-2026-4947 stdlib: GO-2026-4947 go.mod
HIGH GO-2026-4946 stdlib: GO-2026-4946 go.mod
HIGH GO-2026-4918 stdlib: GO-2026-4918 go.mod
HIGH GO-2026-4870 stdlib: GO-2026-4870 go.mod
HIGH GO-2026-4869 stdlib: GO-2026-4869 go.mod
HIGH GO-2026-4865 stdlib: GO-2026-4865 go.mod
HIGH GO-2026-4864 stdlib: GO-2026-4864 go.mod
HIGH GO-2026-4603 stdlib: GO-2026-4603 go.mod
HIGH GO-2026-4602 stdlib: GO-2026-4602 go.mod
HIGH GO-2026-4601 stdlib: GO-2026-4601 go.mod
HIGH GO-2026-4342 stdlib: GO-2026-4342 go.mod
HIGH GO-2026-4341 stdlib: GO-2026-4341 go.mod
HIGH GO-2026-4340 stdlib: GO-2026-4340 go.mod
HIGH GO-2026-4337 stdlib: GO-2026-4337 go.mod
HIGH GO-2025-4175 stdlib: GO-2025-4175 go.mod
HIGH GO-2025-4155 stdlib: GO-2025-4155 go.mod
HIGH GO-2025-4015 stdlib: GO-2025-4015 go.mod
HIGH GO-2025-4014 stdlib: GO-2025-4014 go.mod
HIGH GO-2025-4013 stdlib: GO-2025-4013 go.mod
HIGH GO-2025-4012 stdlib: GO-2025-4012 go.mod
HIGH GO-2025-4011 stdlib: GO-2025-4011 go.mod
HIGH GO-2025-4010 stdlib: GO-2025-4010 go.mod
HIGH GO-2025-4009 stdlib: GO-2025-4009 go.mod
HIGH GO-2025-4008 stdlib: GO-2025-4008 go.mod
HIGH GO-2025-4007 stdlib: GO-2025-4007 go.mod
HIGH GO-2025-4006 stdlib: GO-2025-4006 go.mod
HIGH SEC020 [SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-b… modules/caddyhttp/caddyauth/command.go:110
MED SEC107 [SEC107] Weak TLS version requested (TLSv1.0, TLSv1.1, SSLv3, SSLv2): TLS 1.0 and 1.1 wer… modules/caddytls/values.go:130
MED SEC091 [SEC091] Go: net/http server without timeouts: HTTP server without ReadHeaderTimeout/Read… modules/caddyhttp/reverseproxy/command.…:257
MED SEC091 [SEC091] Go: net/http server without timeouts: HTTP server without ReadHeaderTimeout/Read… modules/caddyhttp/fileserver/command.go:171
MED AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks…
MED AUC002 [AUC002] Low visible authorization coverage in route inventory: Only 3.6% of discovered r…
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/reverseproxy/fastcgi/…:344
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/reverseproxy/fastcgi/…:343
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/reverseproxy/fastcgi/…:245
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/encode/encode.go:455
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/reverseproxy/reversep…:1582
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/reverseproxy/reversep…:1367
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … modules/caddyhttp/templates/templates.go:446
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … admin.go:1043
MED AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears … admin.go:833
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… caddyconfig/load.go:129
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… caddyconfig/load.go:128
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… admin.go:962
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… admin.go:960
LOW SEC132 [SEC132] String concat where the language has interpolation (AI style drift): String buil… modules/caddyhttp/caddyauth/caddyauth.go:99
LOW ERR003 [ERR003] Ignored Error (Go): Ignoring error return values. listen_unix.go:237
LOW ERR003 [ERR003] Ignored Error (Go): Ignoring error return values. listen.go:184
LOW ERR003 [ERR003] Ignored Error (Go): Ignoring error return values. caddyconfig/load.go:109
LOW AIC003 Duplicated implementation block across source files modules/logging/journaldencoder.go:75
LOW AIC003 Duplicated implementation block across source files modules/logging/filterencoder.go:35
LOW AIC003 Duplicated implementation block across source files modules/caddytls/zerosslissuer.go:128
LOW AIC003 Duplicated implementation block across source files modules/caddytls/storageloader.go:51
LOW AIC003 Duplicated implementation block across source files modules/caddytls/capools.go:447
LOW AIC003 Duplicated implementation block across source files modules/caddytls/capools.go:295
LOW AIC003 Duplicated implementation block across source files modules/caddyhttp/staticresp.go:302
LOW AIC003 Duplicated implementation block across source files modules/caddyhttp/staticresp.go:290
LOW AIC003 Duplicated implementation block across source files modules/caddyhttp/fileserver/matcher.go:421
LOW AIC003 Duplicated implementation block across source files listen_unix.go:55
INFO MINED057 [MINED057] Todo Bomb: Code path with a TODO/FIXME/HACK comment that gates correctness — l… modules/caddypki/maintain.go:72
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… modules/caddyhttp/reverseproxy/addresse…:112
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… modules/caddyhttp/push/handler.go:230
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. modules/caddyhttp/caddyauth/command.go:110
INFO MINED060 [MINED060] Go Context No Cancel: context.Background() at request handler boundary leaks g… modules/caddyhttp/tracing/tracerprovide…:50
INFO MINED060 [MINED060] Go Context No Cancel: context.Background() at request handler boundary leaks g… cmd/storagefuncs.go:83
INFO MINED071 [MINED071] Go Panic Call: panic() crashes the process. Should return error in most cases. modules/caddyhttp/reverseproxy/metrics.…:43
INFO MINED071 [MINED071] Go Panic Call: panic() crashes the process. Should return error in most cases. caddyconfig/configadapters.go:113
INFO MINED071 [MINED071] Go Panic Call: panic() crashes the process. Should return error in most cases. caddyconfig/caddyfile/formatter.go:115
Reset to top 5 97 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `caddyserver/caddy`

**Score: 73/100 (B-)**  ·  98 findings  ·  scanned 2026-06-05 08:02 UTC  ·  97,334 LOC

| Severity | Count |
|---|---|
| CRITICAL | 5 |
| HIGH | 51 |
| MEDIUM | 18 |
| LOW | 14 |

📊 [Full filterable report](https://repobility.com/scan/96e9c385-5af1-4b53-9a84-1cd7e3c12f32/)  ·  ![scorecard](https://repobility.com/scan/96e9c385-5af1-4b53-9a84-1cd7e3c12f32/report.png?v=1780646538-s2)

### Top findings

1. **CRITICAL** `private-key` — Identified a Private Key, which may compromise cryptographic security and sensitive data e
   `caddytest/a.caddy.localhost.key:1`
2. **CRITICAL** `MINED116` — Workflow uses `secrets.MAINTAINER_LOGINS` on a `pull_request` trigger
   `.github/workflows/auto-release-pr.yml:25` · ✓ Repobility
3. **CRITICAL** `MINED116` — Workflow uses `secrets.CI_USER` on a `pull_request` trigger
   `.github/workflows/ci.yml:214` · ✓ Repobility
4. **CRITICAL** `MINED116` — Workflow uses `secrets.S390X_SSH_KEY` on a `pull_request` trigger
   `.github/workflows/ci.yml:213` · ✓ Repobility
5. **CRITICAL** `MINED116` — Workflow uses `secrets.SCORECARD_TOKEN` on a `pull_request` trigger
   `.github/workflows/scorecard.yml:58` · ✓ Repobility

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/96e9c385-5af1-4b53-9a84-1cd7e3c12f32/_
Already filed
This repo publishes a SECURITY.md policy and the scan contains 5 Critical/High security finding(s). Public issue filing would violate coordinated disclosure. Submit privately via the project's security reporting channel.
Megaproject â high spam risk
Could not determine 'caddyserver/caddy' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.