safety

Check Python dependencies for vulnerabilities

pyupio/safety · Static Application Security Testing (SAST) › Language-specific › Python · scanned 3.8.1 (released 2026-05-29) · commit ec3368a4f823 · last scan 2026-11-02

17
declared dependencies
0 / 0
critical / high advisories
0
advisories with a fixed version
4.7
OpenSSF Scorecard (of 10); OpenSSF public dataset
no checksums or signatures
release verification

Changes since last week

3 resolved.

Resolved advisories (3)

Known vulnerabilities

No known advisories matched the declared dependencies.

Not counted: 3 matches (action reference to a moving tag or branch). Neither identifies a version installed from a registry.

Second opinion: OSV-Scanner

OSV-Scanner found 0 advisories in the same files; 0 of Grype's matches are confirmed by it (marked ✓ above). 0 advisories were reported only by OSV-Scanner.

Release integrity

Verdict: no checksums or signatures for safety-x86_64-unknown-linux-gnu. The download matches GitHub's recorded digest.

Verified means a signature, provenance, or attestation was checked against an identity in pyupio/safety's own GitHub Actions workflows.

Repository security (OpenSSF Scorecard)

Score 4.7/10, assessed 2026-10-26 (OpenSSF public dataset). Scorecard viewer

All checks
CheckScoreReason
CII-Best-Practices0no effort to earn an OpenSSF best practices badge detected
Fuzzing0project is not fuzzed
Pinned-Dependencies0dependency not pinned by hash detected -- score normalized to 0
SAST0SAST tool is not run on all commits -- score normalized to 0
Signed-Releases0Project has not signed or included provenance with any releases.
Token-Permissions0detected GitHub workflow tokens with excessive permissions
Maintained23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2
Code-Review7Found 22/30 approved changesets -- score normalized to 7
Binary-Artifacts10no binaries found in the repo
Dangerous-Workflow10no dangerous workflow patterns detected
License10license file detected
Packaging10packaging workflow detected
Security-Policy10security policy file detected
Branch-Protection—internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md

GitHub Actions workflow audit (zizmor)

89 potential issues in 9 workflow files at this release: 46 high, 29 medium, 13 low severity (medium or high confidence only). Each is a pattern to review, not a confirmed vulnerability.

All findings
SeverityRuleLocationNote
Highunpinned-uses
unpinned action reference
.github/workflows/build.yml:17this step
Highunpinned-uses
unpinned action reference
.github/workflows/build.yml:19this step
Highunpinned-uses
unpinned action reference
.github/workflows/build.yml:33this step
Hightemplate-injection
code injection via template expansion
.github/workflows/build.yml:39this step
Hightemplate-injection
code injection via template expansion
.github/workflows/build.yml:51this step
Highunpinned-uses
unpinned action reference
.github/workflows/build.yml:59this step
Highunpinned-uses
unpinned action reference
.github/workflows/build.yml:78this step
Highunpinned-uses
unpinned action reference
.github/workflows/bump.yml:20this step
Highunpinned-uses
unpinned action reference
.github/workflows/bump.yml:44this step
Highunpinned-uses
unpinned action reference
.github/workflows/bump.yml:57this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:32this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:36this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:43this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:49this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:72this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:95this step
Highunpinned-uses
unpinned action reference
.github/workflows/cd.yml:101this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:22this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:27this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:52this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:82this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:115this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:117this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:140this step
Highunpinned-uses
unpinned action reference
.github/workflows/ci.yml:142this step
Highunpinned-uses
unpinned action reference
.github/workflows/issue_responder.yml:13this step
Highdangerous-triggers
use of fundamentally insecure workflow trigger
.github/workflows/pr-comment.yml:3this workflow
Highunsound-condition
unsound conditional expression
.github/workflows/pr-comment.yml:14this job
Highunpinned-uses
unpinned action reference
.github/workflows/pr-comment.yml:20this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:36this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:38this step
Hightemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:48this step
Hightemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:48this step
Hightemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:60this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:89this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:91this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:158this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:331this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:339this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:365this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:416this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:428this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:444this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:454this step
Highunpinned-uses
unpinned action reference
.github/workflows/reusable-build.yml:463this step
Highunpinned-images
unpinned image references
action.yml:53container image uses the floating 'latest' tag
Mediumexcessive-permissions
overly broad permissions
.github/workflows/build.yml:13this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/bump.yml:16this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/cd.yml:1default permissions used due to no permissions: block
Mediumexcessive-permissions
overly broad permissions
.github/workflows/cd.yml:12this job
Mediumsecrets-inherit
secrets unconditionally inherited by called workflow
.github/workflows/cd.yml:17this reusable workflow
Mediumexcessive-permissions
overly broad permissions
.github/workflows/ci.yml:1default permissions used due to no permissions: block
Mediumexcessive-permissions
overly broad permissions
.github/workflows/ci.yml:18this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/ci.yml:49this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/ci.yml:101this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/ci.yml:130this job
Mediumtemplate-injection
code injection via template expansion
.github/workflows/ci.yml:156this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/ci.yml:156this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/ci.yml:156this step
Mediumexcessive-permissions
overly broad permissions
.github/workflows/pr.yml:9this job
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:105this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:105this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:105this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:116this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:166this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:166this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:166this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:166this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:166this step
Mediumtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:213this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/build.yml:42this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/build.yml:51this step
Lowself-repository
use GitHub's dedicated self-repository syntax
.github/workflows/cd.yml:12this job
Lowself-repository
use GitHub's dedicated self-repository syntax
.github/workflows/cd.yml:15this job
Lowself-repository
use GitHub's dedicated self-repository syntax
.github/workflows/pr.yml:9this job
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:213this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:243this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:243this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:265this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:265this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:313this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:313this step
Lowtemplate-injection
code injection via template expansion
.github/workflows/reusable-build.yml:313this step
Informationalsuperfluous-actions
action functionality is already included by the runner
.github/workflows/cd.yml:72this step

Dependencies (17)

By ecosystem: github 15, unknown 2.

Licenses (as declared in the SBOM): unknown 17.

github (15)
NameVersionLicenseDeclared in
actions/checkoutv3.github/workflows/issue_responder.yml
actions/checkoutv4.github/workflows/build.yml
actions/download-artifactv4.github/workflows/cd.yml
actions/github-scriptv7.github/workflows/pr-comment.yml
actions/setup-pythonv5.github/workflows/build.yml
actions/upload-artifactv4.github/workflows/reusable-build.yml
azure/loginv2.github/workflows/reusable-build.yml
azure/trusted-signing-actionv0.5.github/workflows/reusable-build.yml
crazy-max/ghaction-import-gpgv6.github/workflows/bump.yml
docker/build-push-actionv4.github/workflows/build.yml
docker/metadata-actionv5.github/workflows/build.yml
docker/setup-buildx-actionv3.github/workflows/build.yml
pypa/gh-action-pypi-publishrelease/v1.github/workflows/cd.yml
sigstore/cosign-installerv4.0.0.github/workflows/reusable-build.yml
softprops/action-gh-releasev2.0.1.github/workflows/cd.yml
unknown (2)
NameVersionLicenseDeclared in
./.github/workflows/ci.ymlUNKNOWN.github/workflows/cd.yml
./.github/workflows/reusable-build.ymlUNKNOWN.github/workflows/cd.yml

History

WeekVersionDependenciesCriticalHighMediumLowUnknownChanges
2026-11-023.8.117000003 resolved
2026-11-013.8.11711010—

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.

StandardScoreChecks passedFailed checks
NTIA 2021715/7Supplier Name, Dependency Relationship
CISA 2025505/10Software Producer, Dependency Relationship, License Information, Component Hash, SBOM Author
BSI TR-03183444/9Component 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-*/pyupio__safety/.

10 manifests and lockfiles scanned

.github/workflows/build.yml, .github/workflows/bump.yml, .github/workflows/cd.yml, .github/workflows/ci.yml, .github/workflows/issue_responder.yml, .github/workflows/pr-comment.yml, .github/workflows/pr.yml, .github/workflows/reusable-build.yml, action.yml, pyproject.toml

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.

[![release verification](https://img.shields.io/endpoint?url=https%3A%2F%2Frezmoss.github.io%2Fawesome-security-pipeline%2Fbadges%2Fpyupio%2Fsafety%2Frelease.json)](https://rezmoss.github.io/awesome-security-pipeline/projects/pyupio/safety/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.

How the weekly supply-chain report is producedEvery Sunday the catalog's tools are resolved to their latest release. Manifests and workflows go to Syft, Grype, OSV-Scanner, sbomlyze, and zizmor; the release binary and its signatures go to govulncheck, Cosign, slsa-verifier, and GitHub attestation verification; the repository goes to OpenSSF Scorecard. Results are compared with the previous week and published here.Catalog78 tools in READMELatest releaseGitHub API, every SundayManifests & workflowssparse checkout, no testsRelease binaryLinux amd64 + signaturesRepositoryGitHub & OpenSSF dataSyftSBOMGrype + OSV-Scannerknown advisoriessbomlyzediff + minimum elementszizmorworkflow auditgovulncheckvulnerable code in binaryCosign · slsa-verifier · ghrelease verificationOpenSSF Scorecardrepository practicesCompare with last weekdata branch historyThis reportoverview + project pages
ToolWhat it does hereVersion this week
SyftGenerates a CycloneDX SBOM from each release's manifests and lockfiles.1.55.0
GrypeMatches the SBOM against known vulnerabilities.0.121.0
OSV-ScannerChecks the same files against the OSV database to confirm or add matches.2.7.0
govulncheckFor Go tools, finds which advisories have vulnerable code compiled into the released Linux binary.1.9.0
zizmorAudits the project's GitHub Actions workflows for injection, unpinned actions, and excessive permissions.1.31.1
OpenSSF ScorecardScores repository security practices such as code review, branch protection, and pinned dependencies.5.6.0
CosignVerifies Sigstore signatures on the release binary or its checksums file.3.1.4
slsa-verifierVerifies SLSA build provenance published with the release.2.7.1
GitHub CLI attestationsVerifies GitHub artifact attestations for the release binary.—
sbomlyzeDiffs each SBOM against last week and scores NTIA, CISA, and BSI minimum elements. Maintained by this repository's maintainer.0.6.0