Skip to content
QuenchWorks

homepage 2.4.0

Image · Apps & productivity · standard · v2.4.0

F 22cosign signedSPDX SBOMSLSA provenanceamd64 · arm64Rebuilt 2026-10-22

Homepage, a services and bookmarks dashboard with live widgets for hundreds of self-hosted apps. A Next.js app built from source into its standalone bundle on Node 22. Configured with YAML files; can discover services from Kubernetes Ingresses.

Version

The latest line lives at the base page; older lines have their own page so you can pin and verify exactly that version.

Signed
cosign keyless
SBOM
SPDX, on digest
Provenance
SLSA build
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Root filesystem
read-only
Image size
75.9 MB

Published versions

2 tags

Each tag is a multi-arch index (amd64 + arm64) pinned by digest. Tagged by version, never :latest.

VersionSizePublishedDigest
2.6.0latest76.1 MB2026-10-22sha256:c7ca1b9f9902…
2.4.075.9 MB2026-10-22sha256:e9d1b2799f06…

Security report (Trivy)

F· 0/10022 fixable · rebuild clears them

Vulnerability detail

homepage 2.4.0 · 22 CVE
CVESeverityPackageInstalledFixed inTitle
GHSA-2464-fhr4-w9xwCRITICALnext16.3.815.5.28, 16.4.1Next.js: Unauthenticated Remote Code Execution in Image Optimization API when SVG files are used
GHSA-673q-mjm6-r5xrCRITICALnext16.3.816.4.1Next.js: Unauthenticated Remote Code Execution in `use cache` functions returning typed arrays
CVE-2026-105482HIGHnodejs-2222.23.2-r122.23.4-r0nodejs: nodejs: dns.resolve truncates hostnames containing a NUL character
CVE-2026-106069HIGHnodejs-2222.23.2-r122.23.4-r0nodejs: nodejs: TLS certificate hostname bypass via non-canonical IP hostnames
CVE-2026-109383HIGHundici8.10.26.29.1, 7.30.1, 8.12.2undici: undici: Certificate validation bypass via dropped TLS options in Agent
CVE-2026-109829HIGHundici8.10.27.30.1, 8.12.2undici: undici: Cache poisoning and information disclosure via improper cross-origin redirect caching
CVE-2026-109869HIGHundici8.10.26.29.1, 7.30.1, 8.12.2undici: undici: Denial of Service via unhandled stream error on excessive content encodings
CVE-2026-116576HIGHsysteminformation5.33.15.33.16systeminformation: systeminformation: Command injection via improper quotation mark sanitization
CVE-2026-116689HIGHfollow-redirects1.16.11.16.2follow-redirects: follow-redirects: Information disclosure via cross-origin redirects
CVE-2026-87018HIGHundici8.10.26.29.1, 7.30.1, 8.12.2undici: undici: Denial of Service via TLS renegotiation with mismatched certificate
CVE-2026-94482HIGHnext16.3.815.5.28, 16.4.1next: Next.js: Denial of Service via crafted requests targeting Server Actions
CVE-2026-105481MEDIUMnodejs-2222.23.2-r122.23.4-r0nodejs: nodejs: Response desynchronization via improper HTTP keep-alive connection reuse
CVE-2026-106072MEDIUMnodejs-2222.23.2-r122.23.4-r0nodejs: nodejs: Authentication bypass via non-canonical IPv4 hostname verification
CVE-2026-106074MEDIUMnodejs-2222.23.2-r122.23.4-r0nodejs: nodejs: predictable random values via snapshot entropy cache reuse
CVE-2026-109841MEDIUMundici8.10.27.30.1, 8.12.2undici: undici: Subresource Integrity bypass via non-lowercase algorithm tokens
CVE-2026-109924MEDIUMundici8.10.26.29.1, 7.30.1, 8.12.2undici: undici: Denial of Service via memory exhaustion in EventSource client
CVE-2026-109932MEDIUMundici8.10.26.29.1, 7.30.1, 8.12.2undici: undici: Denial of Service via unbounded WebSocket PONG buffering
CVE-2026-111997MEDIUMip-address10.7.110.7.4ip-address: ip-address: Denial of Service via excessive percent characters in IPv6 address input
CVE-2026-116674MEDIUMsysteminformation5.33.15.33.13systeminformation: systeminformation: Prototype pollution via crafted interface name
CVE-2026-87029MEDIUMundici8.10.27.30.1, 8.12.2undici: undici: Denial of Service via unhandled exception in decompress interceptor
CVE-2026-106073LOWnodejs-2222.23.2-r122.23.4-r0nodejs: Node.js: Filesystem read permission bypass via fs.realpathSync()
CVE-2026-116673LOWsysteminformation5.33.15.33.14systeminformation: systeminformation: Information disclosure via path traversal in network statistics
2
Critical
9
High
9
Medium
2
Low
0
Unknown
fixable per nightly scan · peak 63 of 115 days with any · 2026-06-29 to 2026-10-22

Pull the image

Run it directly with Docker, Podman, or any Kubernetes workload. Nonroot, read-only root filesystem, built for amd64 and arm64.

Pull (tag)

docker pull ghcr.io/quenchworks/images/homepage:2.4.0

Tags

2.4.02.4.0-amd642.4.0-arm64

Images are tagged by app version (never :latest): a multi-arch index plus per-arch tags.

App version
2.4.0
Architectures
amd64, arm64
Runs as
nonroot (uid 1001)
Root filesystem
read-only
License
GPL-3.0

Verify the supply chain

This image is cosign-signed and carries an SPDX SBOM and a SLSA build-provenance attestation on the same digest. Check all three yourself:

# 1. signature — built and signed by QuenchWorks CI
cosign verify ghcr.io/quenchworks/images/homepage:2.4.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 2. SLSA build provenance — which workflow built it, from what
cosign verify-attestation --type https://slsa.dev/provenance/v1 ghcr.io/quenchworks/images/homepage:2.4.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

# 3. SPDX SBOM — the package inventory
cosign verify-attestation --type https://spdx.dev/Document/v2.3 ghcr.io/quenchworks/images/homepage:2.4.0 \
  --certificate-identity-regexp 'https://github.com/quenchworks/.+' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

See the SBOM & provenance guide for reading the SBOM and using these checks in CI.

Transparency

Every image carries its SBOM and provenance as attestations on the same digest, publicly verifiable with the commands above (they check the package and the Sigstore transparency log, Rekor).

Upstream project: https://gethomepage.dev