Exposed .git Directory: Preventing Source Code and Repository Leaks
The .git directory contains complete commit history, source code files, development branches, and local Git repository configuration. When applications are deployed by cloning repositories directly into public web roots, the .git directory often becomes publicly accessible.
If a web server serves files from /.git/HEAD or /.git/config, an attacker can use automated tools (such as git-dumper) to reconstruct and download your entire proprietary source code within minutes.
Vulnerability Risk & Threat Impact
Exposing source code reveals internal business logic, proprietary algorithms, undocumented endpoints, and hardcoded credentials left in historical commits—even if they were scrubbed from the latest release.
How Our Scanner Inspects for This Flaw
Site Check executes a non-intrusive probe checking for the public availability of /.git/HEAD and /.git/config. If an HTTP 200 status with valid Git metadata is detected, a critical vulnerability alert is raised.
During configuration and secret scanning, the Site Check engine executes lightweight, non-destructive HEAD and GET probes evaluating status code responses (404/403 vs 200). Diagnostic queries adhere to safety bounds without caching payload contents to external storage, ensuring full confidentiality.
Remediation Guide (Step-by-Step Fix)
To resolve this vulnerability, apply the following configuration or code snippet to your web server:
# Block public access to the .git directory in Nginx:
location ~ /\.git {
deny all;
return 404;
}
- Block public HTTP access to the /.git directory across all Nginx or Apache server blocks.
- Use artifact-based deployment pipelines (such as git archive or CI/CD container builds) that do not package repository history into public web folders.
- Audit repository commit history with secret scanning tools (e.g., git-filter-repo, Gitleaks) to purge any historical secrets.
Attack Anatomy & Real-World Business Impact
Upon discovering an exposed /.git directory, attackers employ automated recovery tools such as git-dumper or GitTools to sequentially fetch objects from /.git/objects/ and reconstruct the complete local source repository, including unredacted commit histories and legacy credentials.
Compliance Framework Impact: Failure to adhere to ISO/IEC 27001 (Control A.8.28 — source code security) and OWASP Top 10 (A05:2021 Security Misconfiguration).
Defense-in-Depth Engineering Matrix
| Defense Layer | Technical Action | Tool / Enforcement |
|---|---|---|
| Web Server Perimeter (Nginx / Apache) | Block all incoming requests targeting /.git/* with an immediate 404 response | Nginx deny directive |
| Deployment Pipeline Hardening | Adopt multi-stage container builds or rsync transfers with strict --exclude=".git" arguments | Docker Multi-stage / GitHub Actions |
| Perimeter Auditing | Continuously verify endpoint non-accessibility via external automated diagnostic scans | Site Check External Scanner |
CLI Remediation Verification: Terminal Commands
After applying configuration changes or patching source code, verify that the exposure is neutralized using command-line diagnostic tools:
curl -s -o /dev/null -w "%{http_code}\n" https://your-domain.com/.git/HEAD
# Expected code: 404
DevSecOps Best Practices & CI/CD Hardening
Never deploy software via direct git clone into the web server document root. Adopt multi-stage Docker builds or serve pre-compiled assets from a dedicated dist/ directory.
Frequently Asked Remediation Questions
Exposed configuration files and credentials present the highest risk of automated cloud takeover. We advise implementing pre-commit git hooks (GitLeaks, TruffleHog), migrating environment configurations into encrypted secret managers (HashiCorp Vault, Doppler, AWS Secrets Manager), and configuring web servers to explicitly deny access to hidden dot-files.
To permanently close the «Exposed .git Directory: Preventing Source Code and Repository Leaks» threat vector, integrate verification gates into your CI/CD pipeline and maintain automated perimeter checks with Site Check.