Git History Secret Scan
git-history-secret-scan is a critical severity check in the
devops category, written in go.
Its source is templates/devops/git/git-history-secret-scan.go in
cert-x-gen-templates.
What it checks
Section titled “What it checks”Detects exposed .git directories on web servers that allow reconstruction of repository history and extraction of credentials, API keys, tokens, and other secrets from commit history and configuration files.
Header
Section titled “Header”| Field | Value |
|---|---|
| Id | git-history-secret-scan |
| Severity | critical |
| Language | go |
| Category | devops |
| Author | BugB Technologies |
| Template version | not recorded |
| Confidence | 95 |
| CVSS | not recorded |
| Weakness | CWE-312 |
| Tags | git, secret-exposure, credential-leak, misconfiguration, source-code-disclosure, devops |
| Target kind | not recorded |
| Oracle | not recorded |
References
Section titled “References”Declared in the header. cxg parses @references and then discards it, and
nothing at scan time reads it, so this is the only place the links a
template cites are surfaced.
- https://cwe.mitre.org/data/definitions/312.html
- https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/05-Enumerate_Infrastructure_and_Application_Admin_Interfaces
- https://nvd.nist.gov/vuln/search/results?query=git+exposure
Run it
Section titled “Run it”To see what the copy on your machine says about itself, and to confirm it is installed at all:
cxg template info git-history-secret-scanThe id it prints is the one to pass anywhere a template is selected. See
cxg template for the rest of
the subcommand, Scan a target for running
a scan, and
A match is not a finding for how
to read what comes back.
Related
Section titled “Related”- Template catalog is the whole corpus.
- devops is the rest of this category.
- Templates by weakness class groups checks by the defect they look for.
- Contribute a template is the route from a check you needed and could not find to a merged one.

