haproxy:2.8.31-alpine3.24
Rebuilt 8d ago1 critical CVE7 archsNon-root
docker pull haproxy:2.8.31-alpine3.24 Image metadata
PULL COUNT
1.1B
repository-level (not per-tag)
SIZE (COMPRESSED)
13 MB
ARCHITECTURES
7
RUNS AS
non-root
image config.User
LAST PUSHED
8d ago
2026-11-05 18:56:29
MANIFEST DIGEST
from registry manifest
Latest scan
2026-11-14 06:40:37 UTC · todayOPEN CVES BY SEVERITY
1
CRITICAL
0
HIGH
5
MEDIUM
0
LOW/NEG
Grype DB
2026-11-13T15:40:34.000Z
· rubric cerodeo-v2 RUBRIC BREAKDOWN (8 signals that moved the score)
-25 · Critical CVEs (fixable) -6 · Medium CVEs (fixable) -3 · medium_unfixable +10 · Runs as non-root +10 · Rebuilt in last 90 days +3 · Multi-arch +2 · readme_has_example -22 · cap_any_critical
Consider instead
same role, higher gradeRebuilt 23d ago0 critical CVEs7 archs
shared: role:load-balancer · role:reverse-proxy
Rebuilt 2d ago0 critical CVEs7 archs
shared: role:reverse-proxy
Rebuilt 3d ago0 critical CVEs3 archsNon-root
shared: role:reverse-proxy
Raw data
Every signal above decomposes to arithmetic from inputs you can verify. Nothing in these downloads is derived or massaged — they're the raw grype matches and the raw snapshot history exactly as our scanner wrote them.
Reproduce this score yourself
We don't use judgement to score — every signal is deterministic from the image, the manifest, and a pinned CVE DB.
Run the script below on any host with skopeo, syft,
grype, cosign, and jq installed — it fetches the versioned rubric spec, computes the same breakdown, and prints the same grade. Pin the Grype DB with --grype-db to reproduce bit-for-bit identical results.
curl -fsSLO https://ce.rodeo/verify-score.sh && chmod +x verify-score.sh
./verify-score.sh haproxy:2.8.31-alpine3.24 \
--rubric cerodeo-v2 \
--grype-db 2026-11-13T15:40:34.000Z
All open CVEs (6)
sorted by severity, then CVSS scoreScan history
124 total · first 1mo agoDiscussion
No comments yet. Be the first.