You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To guard against malicious git configs in local scanning (see CVE-2025-41390), TruffleHog clones local git repositories to a temporary directory prior to scanning. This follows [Git's security best practices](https://git-scm.com/docs/git#_security). If you want to specify a custom path to clone the repository to (instead of tmp), you can use the `--clone-path` flag. If you'd like to skip the local cloning process and scan the repository directly (only do this for trusted repos), you can use the `--trust-local-git-config` flag.
- Why is the scan taking a long time when I scan a GitHub org
390
392
- Unauthenticated GitHub scans have rate limits. To improve your rate limits, include the `--token` flag with a personal access token
391
393
- It says a private key was verified, what does that mean?
392
-
-Check out our Driftwood blog post to learn how to do this, in short we've confirmed the key can be used live for SSH or SSL [Blog post](https://trufflesecurity.com/blog/driftwood-know-if-private-keys-are-sensitive/)
394
+
-A verified result means TruffleHog confirmed the credential is valid by testing it against the service's API. For private keys, we've confirmed the key can be used live for SSH or SSL authentication. Check out our Driftwood blog post to learn more[Blog post](https://trufflesecurity.com/blog/driftwood-know-if-private-keys-are-sensitive/)
393
395
- Is there an easy way to ignore specific secrets?
394
396
- If the scanned source [supports line numbers](https://github.com/trufflesecurity/trufflehog/blob/d6375ba92172fd830abb4247cca15e3176448c5d/pkg/engine/engine.go#L358-L365), then you can add a `trufflehog:ignore` comment on the line containing the secret to ignore that secrets.
395
397
@@ -405,7 +407,13 @@ TruffleHog v3 is a complete rewrite in Go with many new powerful features.
405
407
406
408
## What is credential verification?
407
409
408
-
For every potential credential that is detected, we've painstakingly implemented programmatic verification against the API that we think it belongs to. Verification eliminates false positives. For example, the [AWS credential detector](pkg/detectors/aws/aws.go) performs a `GetCallerIdentity` API call against the AWS API to verify if an AWS credential is active.
410
+
For every potential credential that is detected, we've painstakingly implemented programmatic verification against the API that we think it belongs to. Verification eliminates false positives and provides three result statuses:
411
+
412
+
-**verified**: Credential confirmed as valid and active by API testing
413
+
-**unverified**: Credential detected but not confirmed valid (may be invalid, expired, or verification disabled)
414
+
-**unknown**: Verification attempted but failed due to errors, such as a network or API failure
415
+
416
+
For example, the [AWS credential detector](pkg/detectors/aws/aws.go) performs a `GetCallerIdentity` API call against the AWS API to verify if an AWS credential is active.
409
417
410
418
# :memo: Usage
411
419
@@ -444,7 +452,7 @@ Flags:
444
452
--github-actions Output in GitHub Actions format.
445
453
--concurrency=20 Number of concurrent workers.
446
454
--no-verification Don't verify the results.
447
-
--results=RESULTS Specifies which type(s) of results to output: verified, unknown, unverified, filtered_unverified. Defaults to all types.
455
+
--results=RESULTS Specifies which type(s) of results to output: verified (confirmed valid by API), unknown (verification failed due to error), unverified (detected but not verified), filtered_unverified (unverified but would have been filtered out). Defaults to all types.
448
456
--allow-verification-overlap
449
457
Allow verification of similar credentials across detectors
450
458
--filter-unverified Only output first unverified result per chunk per detector if there are more than one results.
@@ -677,7 +685,7 @@ webhook is used containing the regular expression matches.
677
685
678
686
TruffleHog will send a JSON POST request containing the regex matches to a
679
687
configured webhook endpoint. If the endpoint responds with a `200 OK` response
680
-
status code, the secret is considered verified.
688
+
status code, the secret is considered verified. If verification fails due to network/API errors, the result is marked as unknown.
681
689
682
690
Custom Detectors support a few different filtering mechanisms: entropy, regex targeting the entire match, regex targeting the captured secret,
683
691
and excluded word lists checked against the secret (captured group if present, entire match if capture group is not present). Note that if
0 commit comments