redact-secret · Report · Detector
slack-user-token
Format evidence
- Provider documentation xoxp- user token, dash-separated sections, secret last · observed 2026-09-24 · the provider states user tokens begin with xoxp-, that tokens are dash-separated sections with the secret last, and shows a three-numeric-section example; it states no section widths or secret alphabet, says pre-August-2016 user tokens may carry 6- or 10-character secrets, and the 2016 token-lengthening changelog warns against relying on perceived token semantics
- gitleaks 8.30.1
- trufflehog 3.97.4
- Reference 1
- Reference 2
Lexical separability decided before authoring (#212): the provider-documented xoxp- prefix and the provider example's three dash-separated numeric sections followed by a secret section separate a user token from the recorded confusables (public T/U/B ids, masked sections, references, placeholders). The pattern deliberately freezes no numeric width and no secret alphabet or width: those are tool claims (gitleaks slack-user-token 10-13 digits and 28-34 [a-zA-Z0-9-]; noseyparker exactly 12 digits and 32 lowercase hex; trufflehog two sections and an open tail) and Slack says tokens may reach 255 characters. Twins therefore mutate only provider-documented properties (the xox stem and the p letter, the dash separator, the secret section itself). Kept separate and not claimed: rotating xoxe.xoxp- user/config tokens (scope undecided), the Slack CLI service-token xoxp-1-... shape, and the xoxc- browser session token. All three are real secrets and none is a control. The registry's detector-coverage slack-token shape-2 fixtures already carry xoxp- positives built to the product's frozen grammar; they target slack-token and are not this family's evidence.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 10 | False alarmsat most 27.8%0 of 10 controls flagged | 10 quiet · 0 flagged |
| |
| Must not flag · Project policy | 6 | False alarmsat most 39.0%0 of 6 controls flagged | 6 quiet · 0 flagged |
| |
| Must redact · Provider-documented | 11 | Secret spans left readableat most 25.9%0 of 11 spans | Near-twins told apartinsufficient-coverage5 of 5 pairs | 11 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 27
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
slack-user-token-audit-envslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-bearer-curlslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-bolt-installation-storeslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-curl-form-tokenslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-docs-placeholder-placeholderslack · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
slack-user-token-dotenvslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-dotted-sections-twinslack · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
slack-user-token-legacy-query-tokenslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-masked-sections-placeholderslack · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
slack-user-token-missing-secret-twinslack · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
slack-user-token-oauth-v2-accessslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-python-scim-clientslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-python-webclientslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-slack-loginslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-underscore-delimiter-twinslack · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
slack-user-token-auth-test-public-idslack · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
slack-user-token-base64-workspace-encoded-valueslack · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
slack-user-token-channel-ids-public-idslack · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
slack-user-token-env-reference-referenceslack · templated-reference | Must not flagT3 · Project policy | Quiet |
slack-user-token-legacy-short-secretslack · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
slack-user-token-masked-log-placeholderslack · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
slack-user-token-prefix-only-near-missslack · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
slack-user-token-sdk-environ-referenceslack · templated-reference | Must not flagT3 · Project policy | Quiet |
slack-user-token-stem-prefix-twinslack · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
slack-user-token-token-guidance-proseslack · prose-mention | Must not flagT3 · Project policy | Quiet |
slack-user-token-uppercase-prefix-twinslack · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
slack-user-token-webhook-host-only-public-idslack · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |