polaris

Validate Kubernetes best practices and policies

FairwindsOps/polaris · Kubernetes Security · scanned v10.2.5 (released 2026-09-18) · commit c84bb2ea3674 · last scan 2026-11-02

81
declared dependencies
1 / 5
critical / high advisories
8
advisories with a fixed version
16
advisories with vulnerable code in the go1.27.1 binary
5.1
OpenSSF Scorecard (of 10); OpenSSF public dataset
signed, signer not checked
release verification

Changes since last week

no change.

Known vulnerabilities (8)

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.

SeverityAdvisoryPackageVersionFixed inOSVReleased binaryKEVEPSSDeclared inDispute
CriticalGO-2026-6612 source
CVE-2026-78663
golang.org/x/net
golang
v0.57.00.60.0✓vulnerable code in binaryno0.6%go.modDispute
HighGO-2026-6603 source
CVE-2026-78659
golang.org/x/net
golang
v0.57.00.60.0✓vulnerable code in binaryno0.6%go.modDispute
HighGO-2026-6610 source
CVE-2026-78660
golang.org/x/net
golang
v0.57.00.60.0✓vulnerable code in binaryno0.4%go.modDispute
HighGO-2026-6611 source
CVE-2026-78669
golang.org/x/net
golang
v0.57.00.60.0✓vulnerable code in binaryno0.6%go.modDispute
HighGO-2026-6617 source
CVE-2026-97032
golang.org/x/net
golang
v0.57.00.60.0✓vulnerable code in binaryno0.5%go.modDispute
HighGO-2026-6629 source
CVE-2026-56851
golang.org/x/text
golang
v0.40.00.41.0✓vulnerable code in binaryno0.5%go.modDispute
UnknownGO-2026-6860 source
CVE-2026-78661
golang.org/x/net
golang
v0.57.00.62.0✓vulnerable code in binaryno0.2%go.modDispute
UnknownGO-2026-6866 source
CVE-2026-97045
golang.org/x/net
golang
v0.57.00.62.0✓vulnerable code in binaryno0.2%go.modDispute

Second opinion: OSV-Scanner

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

Vulnerable code in the released binary

govulncheck analyzed polaris from polaris_10.2.5_linux_amd64.tar.gz, built with go1.27.1. 16 advisories have vulnerable functions compiled into it: 12 in the Go standard library and 4 in dependencies.

Of the 8 Go advisories Grype matched in the source, 0 are in modules or code paths that are not in the shipped binary.

The Go linker removes unreachable functions, so a vulnerable function in the binary is likely reachable. Standard-library advisories are fixed by rebuilding with a newer Go release.

AdvisoryModuleVersionFixed inSummary
GO-2026-6599
CVE-2026-94448
stdlibv1.27.1v1.27.2Reset context tracking on consecutive template expressions in html/template
GO-2026-6600
CVE-2026-97030
stdlibv1.27.1v1.27.2Recognize yield as regexp preceder keyword in html/template
GO-2026-6603
CVE-2026-78659
stdlibv1.27.1v1.27.2HTTP/2 server memory exhaustion due to Trailer headers in net/http
GO-2026-6605
CVE-2026-56866
stdlibv1.27.1v1.27.2HTTP/1 client connection desynchronization after CONNECT rejection in net/http
GO-2026-6607
CVE-2026-97031
stdlibv1.27.1v1.27.2Reject malformed ECH outer extension references in crypto/tls
GO-2026-6608
CVE-2026-94440
stdlibv1.27.1v1.27.2Memory limit bypass when parsing MIME headers in net/textproto, mime/multipart
GO-2026-6609
CVE-2026-78667
stdlibv1.27.1v1.27.2Lack of limit on size of parsed Range headers in net/http
GO-2026-6610
CVE-2026-78660
stdlibv1.27.1v1.27.2HTTP/2 transport accepts malformed framing-related headers in net/http
GO-2026-6611
CVE-2026-78669
stdlibv1.27.1v1.27.2Excessive CPU consumption from repeated initial window changes in net/http
GO-2026-6613
CVE-2026-94439
stdlibv1.27.1v1.27.2HTTP/1 server connection desynchronization after 2xx CONNECT response in net/http
GO-2026-6617
CVE-2026-97032
stdlibv1.27.1v1.27.2HTTP/2 server crash due to HPACK encoder race in net/http
GO-2026-6809
CVE-2026-111943
stdlibv1.27.1v1.27.3Distrust compromised intermediate certificates in crypto/x509
GO-2026-6612
CVE-2026-78663
golang.org/x/netv0.57.0v0.60.0Double flow control refund on HTTP/2 server streams in net/http
GO-2026-6860
CVE-2026-78661
golang.org/x/netv0.57.0v0.62.0Avoid quadratic complexity when coalescing text nodes in html in golang.org/x/net
GO-2026-6866
CVE-2026-97045
golang.org/x/netv0.57.0v0.62.0Check all ancestor namespace transitions when rendering raw text in html in golang.org/x/net
GO-2026-6629
CVE-2026-56851
golang.org/x/textv0.40.0v0.41.0Panic parsing crafted input in x/text/secure/precis in golang.org/x/text

Release integrity

Verdict: signed, signer not checked for polaris_10.2.5_linux_amd64.tar.gz. The download matches GitHub's recorded digest.

CheckResultDetail
Cosign signaturesigned with a project keysigned with the project's own key; the public key is not checked

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

Repository security (OpenSSF Scorecard)

Score 5.1/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
Security-Policy0security policy file not detected
Token-Permissions0detected GitHub workflow tokens with excessive permissions
Code-Review5Found 5/10 approved changesets -- score normalized to 5
Signed-Releases85 out of the last 5 releases have a total of 5 signed artifacts.
Binary-Artifacts10no binaries found in the repo
Dangerous-Workflow10no dangerous workflow patterns detected
License10license file detected
Maintained1030 commit(s) and 0 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
Packaging—packaging workflow not detected

GitHub Actions workflow audit (zizmor)

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

All findings
SeverityRuleLocationNote
Highunpinned-images
unpinned image references
.github/actions/setup-polaris/action.yaml:12container image is unpinned
Highunpinned-uses
unpinned action reference
.github/workflows/stale.yml:14this step
Highunpinned-uses
unpinned action reference
.github/workflows/test_setup.yml:10this step
Highunpinned-uses
unpinned action reference
.github/workflows/test_setup.yml:21this step
Highunpinned-uses
unpinned action reference
.github/workflows/test_setup.yml:22this step
Mediumexcessive-permissions
overly broad permissions
.github/workflows/test_setup.yml:1default permissions used due to no permissions: block
Mediumexcessive-permissions
overly broad permissions
.github/workflows/test_setup.yml:7this job
Mediumexcessive-permissions
overly broad permissions
.github/workflows/test_setup.yml:18this job
Lowself-repository
use GitHub's dedicated self-repository syntax
.github/workflows/test_setup.yml:11this step

Dependencies (81)

By ecosystem: golang 77, github 3, unknown 1.

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

golang (77)
NameVersionLicenseDeclared in
github.com/beorn7/perksv1.0.1go.mod
github.com/cespare/xxhash/v2v2.3.0go.mod
github.com/davecgh/go-spewv1.1.2-0.20180830191138-d8f796af33ccgo.mod
github.com/emicklei/go-restful/v3v3.13.0go.mod
github.com/evanphx/json-patchv5.9.0+incompatiblego.mod
github.com/evanphx/json-patch/v5v5.9.11go.mod
github.com/fairwindsops/controller-utilsv0.3.4go.mod
github.com/fatih/colorv1.19.0go.mod
github.com/fsnotify/fsnotifyv1.9.0go.mod
github.com/fxamacker/cbor/v2v2.9.1go.mod
github.com/go-logr/logrv1.4.3go.mod
github.com/go-logr/stdrv1.2.2go.mod
github.com/go-openapi/jsonpointerv1.0.0go.mod
github.com/go-openapi/jsonreferencev1.0.0go.mod
github.com/go-openapi/swagv0.27.1go.mod
github.com/go-openapi/swag/cmdutilsv0.27.1go.mod
github.com/go-openapi/swag/convv0.27.1go.mod
github.com/go-openapi/swag/fileutilsv0.27.1go.mod
github.com/go-openapi/swag/jsonutilsv0.27.1go.mod
github.com/go-openapi/swag/loadingv0.27.1go.mod
github.com/go-openapi/swag/manglingv0.27.1go.mod
github.com/go-openapi/swag/netutilsv0.27.1go.mod
github.com/go-openapi/swag/poolsv0.27.1go.mod
github.com/go-openapi/swag/stringutilsv0.27.1go.mod
github.com/go-openapi/swag/typeutilsv0.27.1go.mod
github.com/go-openapi/swag/yamlutilsv0.27.1go.mod
github.com/google/gnostic-modelsv0.7.1go.mod
github.com/google/uuidv1.6.0go.mod
github.com/gorilla/muxv1.8.1go.mod
github.com/inconshreveable/mousetrapv1.1.0go.mod
github.com/json-iterator/gov1.1.12go.mod
github.com/mattn/go-colorablev0.1.14go.mod
github.com/mattn/go-isattyv0.0.20go.mod
github.com/modern-go/concurrentv0.0.0-20180306012644-bacd9c7ef1ddgo.mod
github.com/modern-go/reflect2v1.0.3-0.20250322232337-35a7c28c31eego.mod
github.com/munnerz/goautonegv0.0.0-20191010083416-a7dc8b61c822go.mod
github.com/pkg/errorsv0.9.1go.mod
github.com/pmezard/go-difflibv1.0.1-0.20181226105442-5d4384ee4fb2go.mod
github.com/prometheus/client_golangv1.24.0go.mod
github.com/prometheus/client_modelv0.6.2go.mod
github.com/prometheus/commonv0.70.0go.mod
github.com/prometheus/procfsv0.21.1go.mod
github.com/qri-io/jsonpointerv0.1.1go.mod
github.com/qri-io/jsonschemav0.2.1go.mod
github.com/samber/lov1.53.0go.mod
github.com/sirupsen/logrusv1.10.2go.mod
github.com/spf13/cobrav1.10.2go.mod
github.com/spf13/pflagv1.0.10go.mod
github.com/stretchr/testifyv1.12.1go.mod
github.com/thoas/go-funkv0.9.3go.mod
github.com/x448/float16v0.8.4go.mod
go.yaml.in/yaml/v2v2.4.4go.mod
go.yaml.in/yaml/v3v3.0.5go.mod
golang.org/x/netv0.57.0go.mod
golang.org/x/oauth2v0.36.0go.mod
golang.org/x/syncv0.22.0go.mod
golang.org/x/sysv0.47.0go.mod
golang.org/x/termv0.45.0go.mod
golang.org/x/textv0.40.0go.mod
golang.org/x/timev0.15.0go.mod
gomodules.xyz/jsonpatch/v2v2.5.0go.mod
google.golang.org/protobufv1.36.12-0.20260120151049-f2248ac996afgo.mod
gopkg.in/evanphx/json-patch.v4v4.13.0go.mod
gopkg.in/inf.v0v0.9.1go.mod
gopkg.in/yaml.v3v3.0.1go.mod
k8s.io/apiv0.37.0go.mod
k8s.io/apiextensions-apiserverv0.37.0go.mod
k8s.io/apimachineryv0.37.0go.mod
k8s.io/client-gov0.37.0go.mod
k8s.io/klog/v2v2.140.0go.mod
k8s.io/kube-openapiv0.0.0-20260721132016-d427ff9ee9adgo.mod
k8s.io/utilsv0.0.0-20260626114624-be93311217bdgo.mod
sigs.k8s.io/controller-runtimev0.25.0go.mod
sigs.k8s.io/jsonv0.0.0-20250730193827-2d320260d730go.mod
sigs.k8s.io/randfillv1.0.0go.mod
sigs.k8s.io/structured-merge-diff/v6v6.4.2go.mod
sigs.k8s.io/yamlv1.6.0go.mod
github (3)
NameVersionLicenseDeclared in
actions/checkoutv6.0.2.github/workflows/test_setup.yml
actions/stalev4.github/workflows/stale.yml
fairwindsops/polaris/.github/actions/setup-polarismaster.github/workflows/test_setup.yml
unknown (1)
NameVersionLicenseDeclared in
./.github/actions/setup-polarisUNKNOWN.github/workflows/test_setup.yml

History

WeekVersionDependenciesCriticalHighMediumLowUnknownChanges
2026-11-02v10.2.58115002—
2026-11-01v10.2.58115002—

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

5 manifests and lockfiles scanned

.github/actions/setup-polaris/action.yaml, .github/workflows/stale.yml, .github/workflows/test_setup.yml, go.mod, go.sum

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%2FFairwindsOps%2Fpolaris%2Frelease.json)](https://rezmoss.github.io/awesome-security-pipeline/projects/FairwindsOps/polaris/index.html)
[![vulnerable code in binary](https://img.shields.io/endpoint?url=https%3A%2F%2Frezmoss.github.io%2Fawesome-security-pipeline%2Fbadges%2FFairwindsOps%2Fpolaris%2Fin-binary.json)](https://rezmoss.github.io/awesome-security-pipeline/projects/FairwindsOps/polaris/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