redact-secret · Report · Detector
GitLab runner authentication tokens
Format evidence
Graduated arrival contract (registry detector since redact-secret#730). Lexical separability decided before authoring (#212): the provider-documented glrt- prefix plus either a 20-character friendly-token body (optionally after the legacy t<hex>_ partition segment) or the routable <base64url>.<2 base36>.<2 base36 length><7 base36 CRC32> grammar separates a runner authentication token from the recorded confusables (s_<12 hex> system ids, 8-character short_sha values, runner ids, masked/REDACTED values, references). Only the glrt- prefix is provider-documented; the legacy body (Devise friendly_token, 20 chars) and the routable grammar and checksum come from GitLab's own code (routable_token.rb, runner.rb) and GitLab's provider-authored secret-detection rules, so the contract is T2. The routable checksum is recomputable offline: `validate` re-checks the base36 length holder and the CRC32, and the generator computes both over synthetic bytes. Not claimed: glrtr- tokens (documented prefix for runners registered with a registration token; current shape unverified), instance-prefixed <admin-prefix>-glrt- tokens (self-managed, feature-flagged), the unversioned single-dot routable design form, and exact issuance windows. glrtr- values, GR1348941 registration tokens and other gl-stem tokens are real secrets and are never controls. Pinned peers: gitleaks gitlab-runner-authentication-token matches the 20-character body (truncating longer tokens at 25 bytes) and its routable rule requires a t<d>_ segment and a single dot, so it matches neither GitLab's versioned routable shape; trufflehog 3.97.4 has no glrt- detector.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 15 | False alarmsat most 20.4%0 of 15 controls flagged | 15 quiet · 0 flagged |
| |
| Must not flag · Project policy | 9 | False alarmsat most 29.9%0 of 9 controls flagged | 9 quiet · 0 flagged |
| |
| Must redact · Tool-corroborated | 19 | Secret spans left readableat most 16.8%0 of 19 spans | Near-twins told apartinsufficient-coverage8 of 8 pairs | 19 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 43
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
gitlab-runner-authentication-token-api-headergitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-checksum-mismatch-twingitlab · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-ci-server-tokengitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-config-tomlgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-docker-registergitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-exportgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-handovergitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-helm-valuesgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-k8s-secretgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-length-holder-mismatch-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-prefix-letter-twingitlab · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-query-tokengitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-register-flaggitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-register-outputgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-runner-loggitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-terraform-runnergitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-token-shape-baregitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-token-shape-quotedgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-token-shape-unicode-crlfgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-twin-base-registergitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-twin-base-tomlgitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-uppercase-base36-twingitlab · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-user-runners-responsegitlab · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
gitlab-runner-authentication-token-angle-placeholder-placeholdergitlab · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-base64-url-encoded-valuegitlab · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-helm-template-referencegitlab · templated-reference | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-label-prosegitlab · benign-lookalike | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-maskgitlab · benign-lookalike | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-masked-placeholdergitlab · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-migration-note-prosegitlab · prose-mention | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-prefix-onlygitlab · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-prefix-only-near-missgitlab · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-redacted-placeholdergitlab · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-referencegitlab · benign-lookalike | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-runner-object-public-idgitlab · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-shell-reference-referencegitlab · templated-reference | Must not flagT3 · Project policy | Quiet |
gitlab-runner-authentication-token-short-bodygitlab · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-short-body-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-short-body-twin-wrong-lengthgitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-short-sha-public-idgitlab · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-stem-prefix-twingitlab · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-runner-authentication-token-system-id-public-idgitlab · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-runner-authentication-token-underscore-delimiter-twingitlab · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |