psalm

Analyze PHP code for type and security issues

vimeo/psalm · Static Application Security Testing (SAST) › Language-specific › PHP · scanned 6.20.5 (released 2026-10-31) · commit e447b655502f · last scan 2026-11-02

68
declared dependencies
0 / 0
critical / high advisories
0
advisories with a fixed version
4.7
OpenSSF Scorecard (of 10); OpenSSF public dataset
no Linux binary
release verification

Changes since last week

1 resolved.

Resolved advisories (1)

Known vulnerabilities

No known advisories matched the declared dependencies.

Not counted: 1 match (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 Linux binary.

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

Repository security (OpenSSF Scorecard)

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

All checks
CheckScoreReason
CII-Best-Practices0no effort to earn an OpenSSF best practices badge detected
Code-Review0Found 0/5 approved changesets -- score normalized to 0
Fuzzing0project is not fuzzed
SAST0SAST tool is not run on all commits -- score normalized to 0
Security-Policy0security policy file not detected
Signed-Releases85 out of the last 5 releases have a total of 5 signed artifacts.
Binary-Artifacts10no binaries found in the repo
License10license file detected
Maintained1030 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
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
Dangerous-Workflow—no workflows found
Packaging—packaging workflow not detected
Pinned-Dependencies—no dependencies found
Token-Permissions—No tokens found

GitHub Actions workflow audit (zizmor)

5 potential issues in 13 workflow files at this release: 1 high, 3 medium, 0 low severity (medium or high confidence only). Each is a pattern to review, not a confirmed vulnerability.

All findings
SeverityRuleLocationNote
Highdangerous-triggers
use of fundamentally insecure workflow trigger
.github/workflows/perf-comment.yml:6this workflow
Mediumexcessive-permissions
overly broad permissions
.github/workflows/bcc.yml:5this job
Mediumtemplate-injection
code injection via template expansion
.github/workflows/build-stubs.yml:97this step
Mediumexcessive-permissions
overly broad permissions
.github/workflows/pr-labels.yml:6this job
Informationalsuperfluous-actions
action functionality is already included by the runner
.github/workflows/build-phar.yml:86this step

Dependencies (68)

By ecosystem: composer 57, github 11.

Licenses (as declared in the SBOM): MIT 52, unknown 11, BSD-3-Clause 4, Apache-2.0 1.

composer (57)
NameVersionLicenseDeclared in
amphp/ampv3.1.0MITvendor-bin/box/composer.lock
amphp/byte-streamv2.1.1MITvendor-bin/box/composer.lock
amphp/cachev2.0.1MITvendor-bin/box/composer.lock
amphp/dnsv2.4.0MITvendor-bin/box/composer.lock
amphp/parallelv2.3.1MITvendor-bin/box/composer.lock
amphp/parserv1.1.1MITvendor-bin/box/composer.lock
amphp/pipelinev1.2.2MITvendor-bin/box/composer.lock
amphp/processv2.0.3MITvendor-bin/box/composer.lock
amphp/serializationv1.0.0MITvendor-bin/box/composer.lock
amphp/socketv2.3.1MITvendor-bin/box/composer.lock
amphp/syncv2.3.0MITvendor-bin/box/composer.lock
composer/pcre3.3.2MITvendor-bin/box/composer.lock
composer/semver3.4.3MITvendor-bin/box/composer.lock
composer/xdebug-handler3.0.5MITvendor-bin/box/composer.lock
daverandom/libdnsv2.1.0MITvendor-bin/box/composer.lock
doctrine/deprecations1.1.4MITvendor-bin/box/composer.lock
fidry/console0.6.11MITvendor-bin/box/composer.lock
fidry/filesystem1.2.3BSD-3-Clausevendor-bin/box/composer.lock
humbug/box4.6.3MITvendor-bin/box/composer.lock
humbug/php-scoper0.18.17MITvendor-bin/box/composer.lock
jetbrains/phpstorm-stubsv2024.3Apache-2.0vendor-bin/box/composer.lock
justinrainbow/json-schema5.3.0MITvendor-bin/box/composer.lock
kelunik/certificatev1.1.3MITvendor-bin/box/composer.lock
league/uri7.5.1MITvendor-bin/box/composer.lock
league/uri-interfaces7.5.0MITvendor-bin/box/composer.lock
nikic/iterv2.4.1BSD-3-Clausevendor-bin/box/composer.lock
nikic/php-parserv5.4.0BSD-3-Clausevendor-bin/box/composer.lock
phpdocumentor/reflection-common2.2.0MITvendor-bin/box/composer.lock
phpdocumentor/reflection-docblock5.6.1MITvendor-bin/box/composer.lock
phpdocumentor/type-resolver1.10.0MITvendor-bin/box/composer.lock
phpstan/phpdoc-parser2.1.0MITvendor-bin/box/composer.lock
psr/container2.0.2MITvendor-bin/box/composer.lock
psr/event-dispatcher1.0.0MITvendor-bin/box/composer.lock
psr/http-factory1.1.0MITvendor-bin/box/composer.lock
psr/http-message2.0MITvendor-bin/box/composer.lock
psr/log3.0.2MITvendor-bin/box/composer.lock
revolt/event-loopv1.0.7MITvendor-bin/box/composer.lock
sebastian/diff5.1.1BSD-3-Clausevendor-bin/box/composer.lock
seld/jsonlint1.11.0MITvendor-bin/box/composer.lock
seld/phar-utils1.2.1MITvendor-bin/box/composer.lock
symfony/consolev7.2.1MITvendor-bin/box/composer.lock
symfony/deprecation-contractsv3.5.1MITvendor-bin/box/composer.lock
symfony/event-dispatcher-contractsv3.5.1MITvendor-bin/box/composer.lock
symfony/filesystemv7.2.0MITvendor-bin/box/composer.lock
symfony/finderv7.2.2MITvendor-bin/box/composer.lock
symfony/polyfill-ctypev1.31.0MITvendor-bin/box/composer.lock
symfony/polyfill-iconvv1.31.0MITvendor-bin/box/composer.lock
symfony/polyfill-intl-graphemev1.31.0MITvendor-bin/box/composer.lock
symfony/polyfill-intl-normalizerv1.31.0MITvendor-bin/box/composer.lock
symfony/polyfill-mbstringv1.31.0MITvendor-bin/box/composer.lock
symfony/polyfill-php84v1.31.0MITvendor-bin/box/composer.lock
symfony/processv7.2.0MITvendor-bin/box/composer.lock
symfony/service-contractsv3.5.1MITvendor-bin/box/composer.lock
symfony/stringv7.2.0MITvendor-bin/box/composer.lock
symfony/var-dumperv7.2.3MITvendor-bin/box/composer.lock
thecodingmachine/safev3.0.0MITvendor-bin/box/composer.lock
webmozart/assert1.11.0MITvendor-bin/box/composer.lock
github (11)
NameVersionLicenseDeclared in
actions/cachev5.github/workflows/bcc.yml
actions/checkoutv6.github/workflows/announce-release.yml
actions/download-artifactv8.0.2.github/workflows/perf-comment.yml
actions/upload-artifactv7.0.1.github/workflows/build-stubs.yml
actions/upload-artifactv7.0.2.github/workflows/perf.yml
docker/setup-buildx-actionv4.github/workflows/build-docker.yml
fkirc/skip-duplicate-actionsv5.3.2.github/workflows/build-docker.yml
mheap/github-action-required-labelsv5.github/workflows/pr-labels.yml
shivammathur/setup-phpv2.github/workflows/announce-release.yml
shivammathur/setup-phpv2.40.0.github/workflows/macos-scan.yml
svenstaro/upload-release-actionv2.github/workflows/build-phar.yml

History

WeekVersionDependenciesCriticalHighMediumLowUnknownChanges
2026-11-026.20.568000001 resolved
2026-11-016.20.56800100—

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-*/vimeo__psalm/.

18 manifests and lockfiles scanned

.github/workflows/announce-release.yml, .github/workflows/auto-release.yml, .github/workflows/bcc.yml, .github/workflows/build-docker.yml, .github/workflows/build-phar.yml, .github/workflows/build-stubs.yml, .github/workflows/ci.yml, .github/workflows/macos-scan.yml, .github/workflows/perf-comment.yml, .github/workflows/perf.yml, .github/workflows/pr-labels.yml, .github/workflows/shepherd.yml, .github/workflows/windows-ci.yml, assets/psalm-phar/composer.json, composer.json, vendor-bin/bcc/composer.json, vendor-bin/box/composer.json, vendor-bin/box/composer.lock

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%2Fvimeo%2Fpsalm%2Frelease.json)](https://rezmoss.github.io/awesome-security-pipeline/projects/vimeo/psalm/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