detect-secrets
Prevent secrets from entering codebases
Changes since last week
no change.
Known vulnerabilities (42)
Vulnerabilities are known advisories that Grype matches against the dependencies declared in each project's release source (manifests and lockfiles, including development and build dependencies). A match does not mean the tool is exploitable: the vulnerable code may be unused, test-only, or not shipped in the released binary. OSV: also reported by OSV-Scanner. Released binary: for Go tools, whether govulncheck found the vulnerable code in the shipped Linux binary. KEV: listed in the CISA Known Exploited Vulnerabilities catalog. EPSS: FIRST's estimated probability of exploitation in the next 30 days. Both describe the vulnerability in general, not its exploitability through this tool; a match in a workflow file refers to a GitHub Action, not to shipped code. Select an advisory for every catalog tool it matches. If a match is wrong or does not apply, use Dispute; accepted disputes are annotated here and listed on the corrections page, and the match stays visible.
| Severity | Advisory | Package | Version | Fixed in | OSV | Released binary | KEV | EPSS | Declared in | Dispute |
|---|---|---|---|---|---|---|---|---|---|---|
| Critical | GHSA-6q48-6c7w-9gw2 source | certifipypi | 2023.11.17 | 2026.10.18 | ✓ | — | no | — | requirements-dev.txt | Dispute |
| Critical | GHSA-5xjx-3w67-w9x9 source | pypa/gh-action-pypi-publishgithub | v1.5.0 | 1.14.3 | — | — | no | — | .github/workflows/pypi.yml | Dispute |
| High | GHSA-2xpw-w6gg-jr37 sourceCVE-2025-66471 | urllib3pypi | 2.1.0 | 2.6.0 | ✓ | — | no | 0.7% | requirements-dev.txt | Dispute |
| High | GHSA-38jv-5279-wg99 sourceCVE-2026-21441 | urllib3pypi | 2.1.0 | 2.6.3 | ✓ | — | no | 2.9% | requirements-dev.txt | Dispute |
| High | GHSA-8988-9cw3-xx77 sourceCVE-2026-97687 | urllib3pypi | 2.1.0 | 2.8.0 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-gm62-xv2j-4w53 sourceCVE-2025-66418 | urllib3pypi | 2.1.0 | 2.6.0 | ✓ | — | no | 0.7% | requirements-dev.txt | Dispute |
| High | GHSA-qccp-gfcp-xxvc sourceCVE-2026-44431 | urllib3pypi | 2.1.0 | 2.7.0 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| High | GHSA-vxq7-64xx-v4gw sourceCVE-2026-97689 | urllib3pypi | 2.1.0 | 2.8.0 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| High | GHSA-394h-qwmc-48pf sourceCVE-2026-113718 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-5vjq-rrrf-7h2q sourceCVE-2026-113726 | virtualenvpypi | 20.26.1 | 21.14.4 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| High | GHSA-6w3r-xr62-4xcp sourceCVE-2026-113723 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-94p9-xgh2-xp45 sourceCVE-2026-102930 | virtualenvpypi | 20.26.1 | 21.7.12 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-c947-3pg5-gm8q sourceCVE-2026-113732 | virtualenvpypi | 20.26.1 | 21.14.2 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-c978-59m8-c77v sourceCVE-2026-113722 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| High | GHSA-p58f-9548-mpm2 sourceCVE-2026-102925 | virtualenvpypi | 20.26.1 | 21.7.13 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| High | GHSA-rqc4-2hc7-8c8v sourceCVE-2024-53899 | virtualenvpypi | 20.26.1 | 20.26.6 | ✓ | — | no | 1.6% | requirements-dev.txt | Dispute |
| High | GHSA-vxj4-q4g9-crj7 sourceCVE-2026-113725 | virtualenvpypi | 20.26.1 | 21.14.7 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| High | GHSA-x78j-v8h9-3j2q sourceCVE-2026-102937 | virtualenvpypi | 20.26.1 | 21.7.12 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-69hj-f68j-2879 sourceCVE-2026-112909 | filelockpypi | 3.13.1 | 4.2.1 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-8mx5-7m5m-r77g sourceCVE-2026-112910 | filelockpypi | 3.13.1 | 4.2.1 | ✓ | — | no | — | requirements-dev.txt | Dispute |
| Medium | GHSA-qmgc-5h2g-mvrw sourceCVE-2026-22701 | filelockpypi | 3.13.1 | 3.20.3 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-w853-jp5j-5j7f sourceCVE-2025-68146 | filelockpypi | 3.13.1 | 3.20.1 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-65pc-fj4g-8rjx sourceCVE-2026-45409 | idnapypi | 3.7 | 3.15 | ✓ | — | no | 0.4% | requirements-dev.txt | Dispute |
| Medium | GHSA-6w46-j5rx-g56g sourceCVE-2025-71176 | pytestpypi | 7.4.3 | 9.0.3 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-9hjg-9r4m-mvj7 sourceCVE-2024-47081 | requestspypi | 2.31.0 | 2.32.4 | ✓ | — | no | 1.0% | requirements-dev.txt | Dispute |
| Medium | GHSA-9wx4-h78v-vm56 sourceCVE-2024-35195 | requestspypi | 2.31.0 | 2.32.0 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| Medium | GHSA-gc5v-m9x4-r6x2 sourceCVE-2026-25645 | requestspypi | 2.31.0 | 2.33.0 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-34jh-p97f-mpxf sourceCVE-2024-37891 | urllib3pypi | 2.1.0 | 2.2.2 | ✓ | — | no | 1.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-pq67-6m6q-mj2v sourceCVE-2025-50181 | urllib3pypi | 2.1.0 | 2.5.0 | ✓ | — | no | 0.5% | requirements-dev.txt | Dispute |
| Medium | GHSA-43mp-35q3-x3fq sourceCVE-2026-113724 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-558c-9hv2-4prj sourceCVE-2026-113721 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-597g-3phw-6986 sourceCVE-2026-22702 | virtualenvpypi | 20.26.1 | 20.36.1 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-9h9j-4vrj-gf7g sourceCVE-2026-102938 | virtualenvpypi | 20.26.1 | 21.7.11 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-cw65-gx24-rc82 sourceCVE-2026-113716 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-fc2g-4w5p-6whm sourceCVE-2026-113720 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.1% | requirements-dev.txt | Dispute |
| Medium | GHSA-hhxq-47xx-j5xx sourceCVE-2026-113719 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Medium | GHSA-jfmj-5v4g-7637 sourceCVE-2024-5569 | zipppypi | 3.18.1 | 3.19.1 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Low | GHSA-248v-346w-9cwc sourceCVE-2024-39689 | certifipypi | 2023.11.17 | 2024.7.4 | ✓ | — | no | 1.0% | requirements-dev.txt | Dispute |
| Low | GHSA-vxmw-7h4f-hqxh source | pypa/gh-action-pypi-publishgithub | v1.5.0 | 1.13.0 | — | — | no | — | .github/workflows/pypi.yml | Dispute |
| Low | GHSA-494p-63j8-28p3 sourceCVE-2026-113714 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
| Low | GHSA-cx28-75q4-x26q sourceCVE-2026-113717 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.3% | requirements-dev.txt | Dispute |
| Low | GHSA-qmx5-4p3x-wvqf sourceCVE-2026-113715 | virtualenvpypi | 20.26.1 | 21.14.9 | ✓ | — | no | 0.2% | requirements-dev.txt | Dispute |
Second opinion: OSV-Scanner
OSV-Scanner found 44 advisories in the same files; 40 of Grype's matches are confirmed by it (marked ✓ above). 4 advisories were reported only by OSV-Scanner.
Reported only by OSV-Scanner (4)
| Advisory | Package | Version | Severity |
|---|---|---|---|
BIT-setuptools-2022-40897, CVE-2022-40897, GHSA-r9hx-vwmv-q579 | setuptools | 9.1.0 | High |
BIT-setuptools-2025-47273, CVE-2025-47273, GHSA-5rjg-fvgr-3xxf | setuptools | 9.1.0 | High |
BIT-setuptools-2024-6345, CVE-2024-6345, GHSA-cx63-2mw6-8hw5 | setuptools | 9.1.0 | High |
BIT-setuptools-2026-59890, CVE-2026-59890, GHSA-h35f-9h28-mq5c | setuptools | 9.1.0 | Medium |
Release integrity
Verdict: no release files.
- Checksums file: no
- Signatures: no
- SLSA provenance: no
- SBOM published with the release: no
Verified means a signature, provenance, or attestation was checked against an identity in Yelp/detect-secrets's own GitHub Actions workflows.
Repository security (OpenSSF Scorecard)
Score 3.5/10, assessed 2026-10-26 (OpenSSF public dataset). Scorecard viewer
All checks
| Check | Score | Reason |
|---|---|---|
| Branch-Protection | 0 | branch protection not enabled on development/release branches |
| CII-Best-Practices | 0 | no effort to earn an OpenSSF best practices badge detected |
| Fuzzing | 0 | project is not fuzzed |
| Maintained | 0 | 0 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 0 |
| Pinned-Dependencies | 0 | dependency not pinned by hash detected -- score normalized to 0 |
| SAST | 0 | SAST tool is not run on all commits -- score normalized to 0 |
| Security-Policy | 0 | security policy file not detected |
| Token-Permissions | 0 | detected GitHub workflow tokens with excessive permissions |
| Code-Review | 7 | Found 6/8 approved changesets -- score normalized to 7 |
| Binary-Artifacts | 10 | no binaries found in the repo |
| Dangerous-Workflow | 10 | no dangerous workflow patterns detected |
| License | 10 | license file detected |
| Packaging | — | packaging workflow not detected |
| Signed-Releases | — | no releases found |
GitHub Actions workflow audit (zizmor)
12 potential issues in 2 workflow files at this release: 7 high, 4 medium, 0 low severity (medium or high confidence only). Each is a pattern to review, not a confirmed vulnerability.
All findings
| Severity | Rule | Location | Note |
|---|---|---|---|
| High | unpinned-uses unpinned action reference | .github/workflows/ci.yml:22 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/ci.yml:23 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/pypi.yml:20 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/pypi.yml:21 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/pypi.yml:35 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/pypi.yml:36 | this step |
| High | unpinned-uses unpinned action reference | .github/workflows/pypi.yml:44 | this step |
| Medium | excessive-permissions overly broad permissions | .github/workflows/ci.yml:15 | this job |
| Medium | excessive-permissions overly broad permissions | .github/workflows/pypi.yml:4 | default permissions used due to no permissions: block |
| Medium | excessive-permissions overly broad permissions | .github/workflows/pypi.yml:13 | this job |
| Medium | excessive-permissions overly broad permissions | .github/workflows/pypi.yml:30 | this job |
| Informational | use-trusted-publishing prefer trusted publishing for authentication | .github/workflows/pypi.yml:44 | this step |
Dependencies (46)
By ecosystem: pypi 43, github 3.
Licenses (as declared in the SBOM): unknown 46.
pypi (43)
| Name | Version | License | Declared in |
|---|---|---|---|
attrs | 23.2.0 | requirements-dev.txt | |
backports-entry-points-selectable | 1.3.0 | requirements-dev.txt | |
certifi | 2023.11.17 | requirements-dev.txt | |
cfgv | 3.4.0 | requirements-dev.txt | |
charset-normalizer | 3.3.2 | requirements-dev.txt | |
coverage | 7.5.1 | requirements-dev.txt | |
distlib | 0.3.8 | requirements-dev.txt | |
filelock | 3.13.1 | requirements-dev.txt | |
flake8 | 7.0.0 | requirements-dev-minimal.txt | |
gibberish-detector | 0.1.1 | requirements-dev.txt | |
identify | 2.5.36 | requirements-dev.txt | |
idna | 3.7 | requirements-dev.txt | |
iniconfig | 2.0.0 | requirements-dev.txt | |
mccabe | 0.7.0 | requirements-dev.txt | |
monotonic | 1.6 | requirements-dev.txt | |
mypy | 0.971 | requirements-dev.txt | |
mypy-extensions | 1.0.0 | requirements-dev.txt | |
nodeenv | 1.8.0 | requirements-dev.txt | |
packaging | 24.0 | requirements-dev.txt | |
platformdirs | 4.2.1 | requirements-dev.txt | |
pluggy | 1.5.0 | requirements-dev.txt | |
pre-commit | 3.5.0 | requirements-dev.txt | |
py | 1.11.0 | requirements-dev.txt | |
pyahocorasick | 2.1.0 | requirements-dev.txt | |
pycodestyle | 2.11.1 | requirements-dev.txt | |
pyflakes | 3.2.0 | requirements-dev.txt | |
pyparsing | 3.1.2 | requirements-dev.txt | |
pytest | 7.4.3 | requirements-dev.txt | |
pyyaml | 6.0.1 | requirements-dev.txt | |
requests | 2.31.0 | requirements-dev.txt | |
responses | 0.25.0 | requirements-dev.txt | |
six | 1.16.0 | requirements-dev.txt | |
toml | 0.10.2 | requirements-dev.txt | |
tox | 4.15.0 | requirements-dev.txt | |
tox-pip-extensions | 1.6.0 | requirements-dev.txt | |
typed-ast | 1.5.5 | requirements-dev.txt | |
types-pyyaml | 6.0.12.12 | requirements-dev.txt | |
types-requests | 2.31.0.20240106 | requirements-dev.txt | |
typing-extensions | 4.11.0 | requirements-dev.txt | |
unidiff | 0.7.5 | requirements-dev.txt | |
urllib3 | 2.1.0 | requirements-dev.txt | |
virtualenv | 20.26.1 | requirements-dev.txt | |
zipp | 3.18.1 | requirements-dev.txt |
github (3)
| Name | Version | License | Declared in |
|---|---|---|---|
actions/checkout | v2 | .github/workflows/ci.yml | |
actions/setup-python | v2 | .github/workflows/ci.yml | |
pypa/gh-action-pypi-publish | v1.5.0 | .github/workflows/pypi.yml |
History
| Week | Version | Dependencies | Critical | High | Medium | Low | Unknown | Changes |
|---|---|---|---|---|---|---|---|---|
| 2026-11-02 | v1.5.0 | 46 | 2 | 16 | 19 | 5 | 0 | — |
| 2026-11-01 | v1.5.0 | 46 | 2 | 16 | 19 | 5 | 0 | — |
SBOM minimum elements
Scored by sbomlyze on the generated source SBOM. A source SBOM usually lacks supplier and hash data, so these scores mostly reflect what the project's manifests declare.
| Standard | Score | Checks passed | Failed checks |
|---|---|---|---|
| NTIA 2021 | 71 | 5/7 | Supplier Name, Dependency Relationship |
| CISA 2025 | 50 | 5/10 | Software Producer, Dependency Relationship, License Information, Component Hash, SBOM Author |
| BSI TR-03183 | 44 | 4/9 | Component Creator, Distribution Licences, SHA-512 Hash, Dependency Relationship, SBOM Creator Contact |
Evidence
Downloads for this week: CycloneDX SBOM · Grype report
Permanent copy of the raw SBOM, Grype, OSV-Scanner, and govulncheck output and release checks: release report-2026-11-02, folder supply-chain-shard-*/Yelp__detect-secrets/.
6 manifests and lockfiles scanned
.github/workflows/ci.yml, .github/workflows/pypi.yml, requirements-dev-minimal.txt, requirements-dev.txt, setup.cfg, setup.py
Full JSON for this project · Atom feed of weekly changes
Badges
shields.io endpoints refreshed with each weekly scan. They report this week's result for the latest release, nothing more.
[](https://rezmoss.github.io/awesome-security-pipeline/projects/Yelp/detect-secrets/index.html)
How this report is made
Every Sunday a GitHub Actions workflow resolves each catalog tool to its latest release and runs the checks below. Every tool is installed from its own latest release and verified against its published checksum or digest. Nothing from the scanned projects is built or executed; release binaries are analyzed as files.
| Tool | What it does here | Version this week |
|---|---|---|
| Syft | Generates a CycloneDX SBOM from each release's manifests and lockfiles. | 1.55.0 |
| Grype | Matches the SBOM against known vulnerabilities. | 0.121.0 |
| OSV-Scanner | Checks the same files against the OSV database to confirm or add matches. | 2.7.0 |
| govulncheck | For Go tools, finds which advisories have vulnerable code compiled into the released Linux binary. | 1.9.0 |
| zizmor | Audits the project's GitHub Actions workflows for injection, unpinned actions, and excessive permissions. | 1.31.1 |
| OpenSSF Scorecard | Scores repository security practices such as code review, branch protection, and pinned dependencies. | 5.6.0 |
| Cosign | Verifies Sigstore signatures on the release binary or its checksums file. | 3.1.4 |
| slsa-verifier | Verifies SLSA build provenance published with the release. | 2.7.1 |
| GitHub CLI attestations | Verifies GitHub artifact attestations for the release binary. | — |
| sbomlyze | Diffs each SBOM against last week and scores NTIA, CISA, and BSI minimum elements. Maintained by this repository's maintainer. | 0.6.0 |