authdb
免费Maintain the standalone cmd/authdb server, pkg/httpserver listener and portal routing, HTTP configuration parser, TLS, shutdown, executable tests, and deployment guidance. Use authdbctl for the management client.
中文简介正在准备中。当前显示原文说明。
Audit AuthCrunch security boundaries, triage vulnerability reports and scanner findings, reproduce authentication or authorization failures, and prepare evidence-backed remediation. Covers trust, credentials, redirects, concurrency, diagnostic logging, and dependency exposure.
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
Treat every authentication shortcut, authorization shortcut, redirect, token source, cookie, forwarded header, parser, cache, and cryptographic decision as a security boundary until proven otherwise.
Skepticism is a verification mode, not a reason to dismiss a report. Translate claims into falsifiable checks, then test or inspect the exact runtime behavior.
Core authorization question — answer it for every protected path:
Remediation follows coding-directives, validation follows testing-and-ci, and tool side effects follow scripts-and-automation. Use authorization-policy-oauth to audit direct-policy callbacks, opaque sessions, browser/origin binding, and logout. Use local-password-authentication to review enumeration defenses, work schedules, and trusted password imports. Use local-identity-database to audit durable credential, replay, lockout, and cross-instance transaction boundaries. Use authentication-portal-profile to review canonical account selection and identity-bound self-service. Use authentication-portal-mfa to review factor checkpoints, proof binding, and enrollment. Use saml-identity-provider to review signed assertions, request/browser binding, and authoritative certificate pins.
| Severity | Criteria |
|---|---|
| Critical | Unauthenticated authn/authz bypass, token forgery, RCE, secret exfiltration |
| High | Authenticated privilege escalation, open redirect to authn bypass, session fixation |
| Medium | Unintended token/secret leakage outside explicit admin debug diagnostics, missing cookie security flags, SSRF with limited reach |
| Low | Defense-in-depth gap, hardening issue with no direct exploit path |
| Info | Coding pattern risk, missing test coverage, informational finding |
Identify the security boundary and all attacker-controlled inputs before searching code.
Request inputs:
Path, RawPath, RequestURI, query, fragment, scheme, host,
absolute-form targets, HTTP/2 pseudo-headers (:path, :authority)Host, X-Forwarded-*, auth and API-key headers, cookies,
content-type, client-IP headersUpgrade, gRPC framing, chunked encodingStored / external inputs:
For external vulnerability reports, extract before judging:
If a report is plausible but deployment-dependent, classify it that way and still consider a library hardening fix when the package makes an unsafe normalization, trust, or ordering assumption.
Follow the call chain from input → decision → sink. Do not stop at a grep hit.
Authorization / gatekeeper paths — map explicitly:
Authentication / identity paths — map explicitly:
Use rg as the starting point. Inspect surrounding code and tests — do not
treat a grep hit as a confirmed finding.
Resolve dependency source paths with go env GOMODCACHE and go env GOROOT,
then inspect the exact package directory. Do not search a home directory or
sibling checkouts to locate cached tooling or dependencies.
URL, path, redirect, and matching:
rg -n "r\.URL\.(Path|RawPath|String|EscapedPath)|RequestURI|PathUnescape|\
path\.Clean|filepath\.Clean|HasPrefix|Contains|MatchString|Location" pkg
rg -n "X-Forwarded|Host|GetCurrentURL|GetTargetURL|Redirect|ForbiddenURL|\
Set\\(\"Location\"" pkg
Token, cookie, session, and secret exposure:
rg -n "access_token|id_token|refresh_token|api[_-]?key|password|secret|\
private|credential|Set-Cookie|SameSite|Secure|HttpOnly" pkg
rg -n "logger\\.|zap\\.|Printf|Errorf|Debug|Info|Warn" \
pkg/idp pkg/authn pkg/authz pkg/kms pkg/identity
Parsing, body limits, and type assertions:
rg -n "io\.ReadAll|ReadAll|MaxBytesReader|map\[string\]interface\{\}|\
\.\(string\)|\.\(\[\]interface\{\}\)|json\.NewDecoder|Unmarshal" pkg
Crypto, TLS, and token verification:
rg -n "InsecureSkipVerify|tls\.Config|x509|jwt|ParseWithClaims|SignedString|\
Verify|Sign|alg|nonce|pkce|state|RS256|HS256|ES256|none" pkg
Concurrency and cache mutation:
rg -n "RLock|Lock\(|Unlock|map\[|delete\(|go func|sync\." pkg
Dependencies and static analysis:
go list ./...
govulncheck ./...
staticcheck ./...
Document any tool that requires network access, an updated vulnerability
database, or loopback listeners; record that condition in validation notes.
Treat govulncheck findings in the Go standard library as release/toolchain
notes unless this repository is the final binary being shipped. For this
library, do not report stdlib CVEs as library-code findings or recommend
raising the go directive solely to clear them. Document the scanning
toolchain, the downstream/final binary build toolchain, and whether consumers
need a patched Go release on their supported Go line.
Record the scanner version, source/binary mode, build metadata, stripping flags, and output precision. Govulncheck JSON is a stream of JSON values, not necessarily one compact object per line; decode the stream and distinguish OSV records from actual findings. JSON-mode exit zero alone does not mean no findings. Separate module matches, imported affected packages, and reported call/symbol evidence.
For stripped binaries, the scanner may fall back to module-level precision and emit wildcard package/symbol entries from an advisory. Those placeholders do not prove that the affected package or function is linked. Preserve the exact shipping-artifact assessment and supplement it with source analysis and a matching build retaining symbols when needed; do not remove findings or change release stripping solely to produce a green scan. Govulncheck v1.8.0 documents this fallback in its official binary analyzer. A retained module can still match an advisory for a package no longer imported. State that boundary instead of claiming the module itself is advisory-free.
Use identity-public-keys to review user-owned GPG/SSH import, authenticated profile input, and OpenPGP compatibility. Trace actual operations before equating dependency maintenance debt with an exploit.
For the selected boundary, read boundary checklists: path interpretation, redirects and host metadata, credential propagation, parsers and resource limits, provider/key trust, or concurrency. These checklists link the narrower contract references; unrelated surfaces may remain out of scope.
For each suspected issue, reach one of these outcomes before reporting:
| Outcome | Meaning |
|---|---|
| Confirmed | Reproduction or regression test exists |
| Deployment-dependent | Plausible; preconditions documented |
| Hardening | No direct exploit path; concrete risk reduction identified |
| Release/toolchain note | Standard-library or final-binary exposure driven by build toolchain |
| False positive | Source-backed reasoning provided |
| Unknown | Exact missing evidence listed |
When govulncheck reports reachable standard-library vulnerabilities, classify
them as release/toolchain notes for go-authcrunch unless the finding is
caused by repository code that can be fixed independently of the final build
toolchain. Avoid treating the local scan's Go version as this module's minimum
supported Go version.
When source-address authorization uses forwarded client-IP headers, classify
header protection as an embedding-solution responsibility for library consumers.
For the in-repository authdb listener, verify its own stripping of forwarded
headers before making that classification. Treat the expected upstream protection as a
deployment assumption unless the reviewed code bypasses its own authorization
checks independently of X-Forwarded-* or X-Real-IP trust.
For every confirmed or deployment-dependent finding:
A normalization fix with no accompanying test is incomplete.
Lead with findings, not an audit narrative. For each issue:
## [SEVERITY] Title
**Status:** confirmed | deployment-dependent | hardening | release/toolchain note | false positive | unknown
**Files:** pkg/foo/bar.go:L42, pkg/foo/baz.go:L17
**Root cause:** <one sentence>
**Impact:** <what an attacker gains>
**Preconditions:** <config, role, or network position required>
**Reproduction:** <minimal payload or test case>
**Recommended fix:** <specific change, not "add validation">
**Validation performed:** <test run, manual trace, or static analysis result>
**Residual risk / follow-up:** <what remains unverified>
For release/toolchain notes, include the local scan toolchain, the module's
declared go version, known downstream build constraints, and the patched Go
toolchain line needed by final binary builders.
Save the full report to a repo-relative tmp/threat-hunt/ directory. Create
the directory when it does not exist. Prefix the report filename with the local
timestamp in YYYYMMDD_HHMM_ format, for example
tmp/threat-hunt/20260629_1530_authz-bypass-review.md. After saving the
report, run go tool versioned -toc -filepath <report-path> to add or refresh the
table of contents, for example
go tool versioned -toc -filepath tmp/threat-hunt/20260629_1530_authz-bypass-review.md.
Mention the saved report path in the final response.
End each report with a "Not deeply tested" section naming surfaces that were not fully exercised, especially:
When remediating:
Validate() time; normalize request inputs immediately
before the security decisionDo not broaden the patch into unrelated findings unless the same unsafe helper or trust boundary is directly involved.
The hunt is complete only when all of the following are true:
make test ran the guarded race-enabled suite, or the exact blocker is documentedgovulncheck ./... and staticcheck ./... were run or scoped outtmp/threat-hunt/ with a
YYYYMMDD_HHMM_ filename prefixgo tool versioned -toc -filepath <report-path> was run against the saved report还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Maintain the standalone cmd/authdb server, pkg/httpserver listener and portal routing, HTTP configuration parser, TLS, shutdown, executable tests, and deployment guidance. Use authdbctl for the management client.
中文简介正在准备中。当前显示原文说明。
Maintain cmd/authdbctl commands, flags, configuration, terminal input, management retries, output, and executable E2E tests. Use authentication-client for the reusable portal login protocol.
中文简介正在准备中。当前显示原文说明。
Maintain or embed pkg/authclient for portal login, password/TOTP and API-key authentication, native credential transport, configuration parsing, and credential files. Covers authdbctl login wiring; management commands and the admin API have separate owners.
中文简介正在准备中。当前显示原文说明。
Maintain conditional authentication challenge policies, reusable authchal and user-transform FromDirectives parsers, safe claim substitution, GitHub ID/organization transforms, registered-factor inventory, passwordless WebAuthn selection, verified AMR access claims, and policy revalidation across portal login, refresh, OIDC, and direct authentication.
中文简介正在准备中。当前显示原文说明。
Maintain portal cookie configuration, reusable cookie directive parsing, common prefixes and explicit names, domain attributes, factory issuance/deletion, and cookie interoperability with OIDC, refresh, OAuth, and gatekeepers.
中文简介正在准备中。当前显示原文说明。
Maintain optional cross-device portal login, its directive parser, QR and polling UI, approving-browser binding, single-use transfers, MFA and provider evidence, logout invalidation, and TLS/browser tests.
中文简介正在准备中。当前显示原文说明。