{"date":"2026-09-14","repo":{"name":"github.com/apache/cloudstack","commit":"dc0ba1cba7475f2c5e0d6346a0e974549c35f00e"},"scorecard":{"version":"v5.5.1-0.20260908181711-f92023a3f778","commit":"f92023a3f77879f96e0c9c1305f289d755be4bb6"},"score":7.3,"checks":[{"name":"Code-Review","score":8,"reason":"Found 26/30 approved changesets -- score normalized to 8","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#code-review","short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged."}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#maintained","short":"Determines if the project is \"actively maintained\"."}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#security-policy","short":"Determines if the project has published a security policy."}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#dangerous-workflow","short":"Determines if the project's GitHub Action workflows avoid dangerous patterns."}},{"name":"Token-Permissions","score":8,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel permissions set to 'read-all': .github/workflows/daily-issue-triage.lock.yml:326","Info: jobLevel 'contents' permission set to 'read': .github/workflows/daily-issue-triage.lock.yml:951","Info: jobLevel 'contents' permission set to 'read': .github/workflows/daily-issue-triage.lock.yml:1112","Info: jobLevel 'contents' permission set to 'read': .github/workflows/daily-issue-triage.lock.yml:1388","Info: jobLevel 'actions' permission set to 'read': .github/workflows/daily-issue-triage.lock.yml:77","Info: jobLevel 'contents' permission set to 'read': .github/workflows/daily-issue-triage.lock.yml:78","Warn: jobLevel 'actions' permission set to 'write': .github/workflows/stale.yml:27","Info: jobLevel 'actions' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:77","Info: jobLevel 'contents' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:78","Info: jobLevel 'contents' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:326","Info: jobLevel 'issues' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:327","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:328","Info: jobLevel 'contents' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:948","Info: jobLevel 'contents' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:1107","Info: jobLevel 'contents' permission set to 'read': .github/workflows/weekly-repo-status.lock.yml:1383","Info: topLevel 'contents' permission set to 'read': .github/workflows/build.yml:30","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:30","Info: topLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:25","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:26","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/codeql-analysis.yml:27","Info: found token with 'none' permissions: .github/workflows/copilot-token-health.yml:1","Info: found token with 'none' permissions: .github/workflows/daily-issue-triage.lock.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/docker-cloudstack-simulator.yml:28","Info: topLevel 'contents' permission set to 'read': .github/workflows/main-sonar-check.yml:20","Info: found token with 'none' permissions: .github/workflows/merge-conflict-checker.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/pre-commit.yml:23","Info: topLevel 'contents' permission set to 'read': .github/workflows/rat.yml:30","Info: topLevel 'contents' permission set to 'read': .github/workflows/sonar-check.yml:20","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/ui.yml:33","Info: found token with 'none' permissions: .github/workflows/weekly-repo-status.lock.yml:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#token-permissions","short":"Determines if the project's workflows follow the principle of least privilege."}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#cii-best-practices","short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge."}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#license","short":"Determines if the project has defined a license."}},{"name":"Binary-Artifacts","score":8,"reason":"binaries present in source code","details":["Warn: binary detected: systemvm/agent/packages/python-is-python3_3.9.2-1_all.deb:1","Warn: binary detected: systemvm/agent/packages/python3-netaddr_0.7.19-5_all.deb:1"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#binary-artifacts","short":"Determines if the project has generated executable (binary) artifacts in the source repository."}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#signed-releases","short":"Determines if the project cryptographically signs release artifacts."}},{"name":"Branch-Protection","score":1,"reason":"branch protection is not maximal on development and all release branches","details":["Warn: branch protection not enabled for branch '4.20'","Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: could not determine whether codeowners review is allowed","Warn: no status checks found to merge onto branch 'main'","Warn: PRs are not required to make changes on branch 'main'; or we don't have data to detect it.If you think it might be the latter, make sure to run Scorecard with a PAT or use Repo Rules (that are always public) instead of Branch Protection settings"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#branch-protection","short":"Determines if the default and release branches are protected with GitHub's branch protection settings."}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#fuzzing","short":"Determines if the project uses fuzzing."}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker-cloudstack-simulator.yml:35"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#packaging","short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall."}},{"name":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Info: Possibly incomplete results: error parsing shell code: statements must be separated by &, ; or a newline: scripts/installer/createtmplt.sh:0","Info: Possibly incomplete results: error parsing shell code: statements must be separated by &, ; or a newline: scripts/installer/createvolume.sh:0","Info: Possibly incomplete results: error parsing shell code: a command can only contain words and redirects; encountered (: scripts/vm/systemvm/injectkeys.py:0","Info: Possibly incomplete results: error parsing shell code: reached ` without closing quote \": test/scripts/xen/createfaketemplate.sh:0","Info: Possibly incomplete results: error parsing shell code: \"fi\" can only be used to end an if: test/scripts/xen/ms.sh:0","Warn: containerImage not pinned by hash: tools/docker/Dockerfile:20: pin your Docker image by updating ubuntu:24.04 to ubuntu:24.04@sha256:224a1869083a311ef3f13648a154ba79832fbef6364d31493642ca03082da254","Warn: containerImage not pinned by hash: tools/docker/Dockerfile.marvin:20: pin your Docker image by updating python:2 to python:2@sha256:cfa62318c459b1fde9e0841c619906d15ada5910d625176e24bf692cf8a2601d","Warn: containerImage not pinned by hash: tools/docker/Dockerfile.s390x:20: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:829f6df217bcbae2b371026e81711d1a787c61b2967ad09d015063663ebafbf7","Warn: containerImage not pinned by hash: tools/docker/Dockerfile.smokedev:20: pin your Docker image by updating ubuntu:16.04 to ubuntu:16.04@sha256:1f1a2d56de1d604801a9671f301190704c25d604a416f59e03c04f5c6ffee0d6","Warn: containerImage not pinned by hash: ui/Dockerfile:20: pin your Docker image by updating node:14-bullseye to node:14-bullseye@sha256:c0bff0d29a742f40650d5f0305dd581351c10954e6cb6676fc96f47590b9666e","Warn: containerImage not pinned by hash: ui/Dockerfile:36: pin your Docker image by updating nginx:alpine to nginx:alpine@sha256:72ba65eb42c10344912a84ff42408db7d34f2feb642204570ab8fc5ffd29f1d3","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile:59-66","Warn: npmCommand not pinned by hash: tools/docker/Dockerfile:68-70","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.marvin:29","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.marvin:31","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.marvin:32","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.s390x:62-72","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.s390x:62-72","Warn: downloadThenRun not pinned by hash: tools/docker/Dockerfile.s390x:76-83","Warn: npmCommand not pinned by hash: tools/docker/Dockerfile.s390x:76-83","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.smokedev:53","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.smokedev:119","Warn: pipCommand not pinned by hash: tools/docker/Dockerfile.smokedev:124","Warn: npmCommand not pinned by hash: ui/Dockerfile:33","Warn: pipCommand not pinned by hash: debian/cloudstack-marvin.postinst:22","Warn: pipCommand not pinned by hash: debian/cloudstack-marvin.postinst:23","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:286","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:311","Warn: pipCommand not pinned by hash: .github/workflows/ci.yml:312","Warn: pipCommand not pinned by hash: .github/workflows/pre-commit.yml:45","Warn: npmCommand not pinned by hash: .github/workflows/ui.yml:62","Warn: npmCommand not pinned by hash: .github/workflows/ui.yml:63","Info: 101 out of 101 GitHub-owned GitHubAction dependencies pinned","Info:   6 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   6 containerImage dependencies pinned","Info:   0 out of  15 pipCommand dependencies pinned","Info:   0 out of   5 npmCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#pinned-dependencies","short":"Determines if the project has declared and pinned the dependencies of its build process."}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: CodeQL","Info: SAST configuration detected: Sonar","Warn: 12 commits out of 26 are checked with a SAST tool"],"documentation":{"url":"https://github.com/ossf/scorecard/blob/f92023a3f77879f96e0c9c1305f289d755be4bb6/docs/checks.md#sast","short":"Determines if the project uses static code analysis."}}]}
