Fold the Dankclaw and Dankserver vulnerability passes into
fleet-security-audit-2026-10-21.html: the stub "Advisory cross-reference (in
progress)" section becomes the full matrix (host advisories, GHSA coverage,
image-vulnerability matrix, no-advisory census, observed-without-credentials
rows for the two livingroom hosts) and the header links the two working files,
which move into omp-docs/reports/ with an index of their own.
Correct three figures the audit had wrong, all found by re-probing: the
mutable-tag census (17 -> 19 Dankclaw manifests / 17 unique references, +4 on
Dankserver), the Dankserver OpenSSH advisory count (0 -> 5 unpatched CVEs; the
first OSV query omitted the version epoch, and OSV answers "0 vulns" rather
than "unknown" for a malformed purl), and the Plex version ("12.1.0" is
Jellyfin's - the live container reports 1.43.5.11029-6bf8af3f0-ls329). Also
repair a malformed <code> tag in F1's evidence cell.
kb-lint and kb-coverage both report 0 issues; index.md gains the Reports
section and log.md the matching entry.
37 KiB
type, title, description, tags, verified
| type | title | description | tags | verified | |||
|---|---|---|---|---|---|---|---|
| reference | Vulnerability pass — Dankclaw (2026-10-21) | Per-container CVE/GHSA pass for the 33 Dankclaw quadlet images and the Ubuntu 26.04 host — the evidence base behind the fleet security audit report. |
|
2026-10-21 |
Vulnerability pass — host dankclaw (Ubuntu 26.04.1 LTS "resolute")
Audited date: 2026-10-21. Image set = the 33 quadlet units in /home/dank/.config/containers/systemd/*.container
(grep -h "^Image=" ~/.config/containers/systemd/*.container), 37 running containers.
Host facts: kernel 7.0.0-38-generic, openssh 1:10.2p1-2ubuntu3.8, openssl/libssl3t64 3.5.5-1ubuntu3.7,
unattended-upgrades active, apt-cache policy candidate == installed for both host packages (no pending distro upgrade).
Every version below was resolved on the host (endpoint, podman exec, image label, or apk db) — the command is named
in the row or in §Version resolution. No CVE/GHSA id is listed unless it came back from the OSV API
(POST https://api.osv.dev/v1/query), the GitHub advisories API, the Ubuntu security tracker, or the Alpine secdb;
the source URL is on the same row.
Headline findings
- SurrealDB 2.7.0 (
open-notebook-surrealdb) is affected by 25 advisories (6 HIGH) and every one of them is fixed only in the 3.x line (fixed: 3.1.0/3.1.4/3.1.5/3.2.0). The image is digest-pinned tosurrealdb/surrealdb:v2, so there is no fixed release on the running v2 line — remediation requires a major-version migration. libssl3 3.5.7-r0in thegitea-server,grafanaandpiholecontainers is missing 10 OpenSSL fixes that Alpine shipped in3.5.8-r0(Alpine v3.24 secdb). The other Alpine-3.24 containers carry3.5.8-r0/3.5.9-r0(clean).musl 1.2.6-r2in 8 containers is missingCVE-2026-107891(Alpine fixed it in1.2.6-r3).openssh 1:10.2p1-2ubuntu3.8has 5 CVEs with no Ubuntu fix published for the installed source version (Ubuntu severity: medium each). Candidate == installed, so there is nothing to upgrade to yet.- Pi-hole runs FTL 6.7.1 / Web 6.6 / Core 6.4.3; the vendor published 12 advisories on 2026-10-17 — after the running image was built (2026-09-19) — and reports newer releases available (FTL v6.8, Web v6.6.1, Core v6.5).
- 24 of 33 quadlet units float on
latest/main/nightly/rolling tags (§Pinning gaps), so a "fixed in" answer is only valid for the exact digest running today.
Affected components
Columns: component | installed/resolved version | CVE | severity | fixed in | source URL
surrealdb/surrealdb:v2 @sha256:e5d7387… — resolved 2.7.0 (podman exec open-notebook-surrealdb /surreal version)
OSV query: ecosystem crates.io, package surrealdb, version 2.7.0 → 25 matches; all affected ranges are
introduced: 0 → fixed: 3.x, i.e. 2.7.0 is inside every range.
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63735 (GHSA-848m-r628-vrxw) | HIGH | 3.2.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-848m-r628-vrxw |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-4vgr-h27g-cf9p (no CVE assigned) | HIGH | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-4vgr-h27g-cf9p |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-5qfp-32cf-69jh (no CVE assigned) | HIGH | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-5qfp-32cf-69jh |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-cc8f-fcx3-gpjr (no CVE assigned) | HIGH | 3.1.5 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-cc8f-fcx3-gpjr |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63760 (GHSA-q729-696q-g9pq) | HIGH | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-q729-696q-g9pq |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-wjjj-24cx-f28g (no CVE assigned) | HIGH | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-wjjj-24cx-f28g |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63748 (GHSA-6g9v-7gq3-p2c6) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-6g9v-7gq3-p2c6 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63740 (GHSA-8rw6-p7m8-63jp) | MODERATE | 3.1.4 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-8rw6-p7m8-63jp |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63743 (GHSA-97vg-427p-8hx5) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-97vg-427p-8hx5 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63755 (GHSA-98fx-66cf-fc7c) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-98fx-66cf-fc7c |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63751 (GHSA-fpxg-5xmv-922m) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-fpxg-5xmv-922m |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63761 (GHSA-fwg2-gr34-q3w8) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-fwg2-gr34-q3w8 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63758 (GHSA-gcwr-5mrf-fvch) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-gcwr-5mrf-fvch |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-63746 (GHSA-vjjx-rfw4-rmfc) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-vjjx-rfw4-rmfc |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | CVE-2026-49997 (GHSA-whwg-vh4f-pmmf) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-whwg-vh4f-pmmf |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-4m82-p8cx-f94j (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-4m82-p8cx-f94j |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-4v76-cw68-4vc9 (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-4v76-cw68-4vc9 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-65rj-r9fh-jp2v (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-65rj-r9fh-jp2v |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-6vg3-hgrw-p5gf (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-6vg3-hgrw-p5gf |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-6wqw-vhfr-9999 (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-6wqw-vhfr-9999 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-c8jx-96c9-8xrp (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-c8jx-96c9-8xrp |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-f82j-v89j-mf86 (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-f82j-v89j-mf86 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-h5rg-8p7f-47g2 (no CVE assigned) | MODERATE | 3.1.5 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-h5rg-8p7f-47g2 |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-q8qp-67f9-wr3f (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-q8qp-67f9-wr3f |
| open-notebook-surrealdb (surrealdb) | 2.7.0 | GHSA-wp87-mgvq-5j93 (no CVE assigned) | MODERATE | 3.1.0 | https://github.com/surrealdb/surrealdb/security/advisories/GHSA-wp87-mgvq-5j93 |
Note: the ranges are recorded against the surrealdb crate on crates.io; the advisory texts describe server
behaviour (LIVE queries, HTTP /rpc, permissions, JWKS SSRF), so the running server is the exposed surface.
SurrealDB is published on 127.0.0.1-adjacent ports only (open-notebook reaches it over the pod network).
Alpine base packages in the running containers (source: https://secdb.alpinelinux.org/v3.24/main.json)
musl 1.2.6-r2 → fix exists at 1.2.6-r3; libssl3 3.5.7-r0 → 10 CVEs fixed at 3.5.8-r0. The Alpine secdb
carries no severity field, so severity is reported as n/a (Alpine secdb).
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| musl in gitea-server (alpine 3.24.1) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in grafana (alpine 3.24.1) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in pihole (alpine 3.24.1) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in gitea-postgres (alpine 3.24.2) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in authentik-postgres (alpine 3.24.2) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in searxng-valkey (alpine 3.24.2) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in ntfy (alpine 3.24.2) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| musl in frank-tts (alpine 3.24.2) | 1.2.6-r2 | CVE-2026-107891 | n/a (Alpine secdb) | 1.2.6-r3 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-14456 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-14457 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-18798 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-54874 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-63072 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-63073 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-63074 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-63075 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-63076 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in gitea-server | 3.5.7-r0 | CVE-2026-75803 | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in grafana | 3.5.7-r0 | CVE-2026-14456, CVE-2026-14457, CVE-2026-18798, CVE-2026-54874, CVE-2026-63072/63073/63074/63075/63076, CVE-2026-75803 (10 CVEs) | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
| libssl3 in pihole | 3.5.7-r0 | CVE-2026-14456, CVE-2026-14457, CVE-2026-18798, CVE-2026-54874, CVE-2026-63072/63073/63074/63075/63076, CVE-2026-75803 (10 CVEs) | n/a (Alpine secdb) | 3.5.8-r0 | https://secdb.alpinelinux.org/v3.24/main.json |
Clean at the installed version on the same secdb: openssl 3.5.8-r0 / 3.5.9-r0, busybox 1.37.0-r31,
ncurses 6.6_p20260516-r0, icu-libs 78.1-r0 (0 unfixed entries above the installed version).
Host packages — Ubuntu 26.04 LTS, source package openssh
OSV query: ecosystem Ubuntu, package openssh, version 1:10.2p1-2ubuntu3.8 → 5 matches, each
ECOSYSTEM[introduced=0] with no fixed event, i.e. no fixed upload recorded for the release line.
Ubuntu's own severity for all five is medium (OSV severity[].type == "Ubuntu"). Distro status:
apt-cache policy openssh-server candidate = 1:10.2p1-2ubuntu3.8 = installed; source package = openssh
(dpkg -s openssh-server → Source: openssh).
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| openssh-server / openssh-client (src: openssh) | 1:10.2p1-2ubuntu3.8 | CVE-2026-110923 (UBUNTU-CVE-2026-110923; sftp client: malicious server name handling) | medium (Ubuntu) | not published (OSV range has no fixed event; candidate == installed) |
https://ubuntu.com/security/CVE-2026-110923 |
| openssh-server / openssh-client (src: openssh) | 1:10.2p1-2ubuntu3.8 | CVE-2026-110924 (GSSAPI auth failure leaves data in inconsistent state) | medium (Ubuntu) | not published (no fixed event; candidate == installed) |
https://ubuntu.com/security/CVE-2026-110924 |
| openssh-server / openssh-client (src: openssh) | 1:10.2p1-2ubuntu3.8 | CVE-2026-110925 (ssh command-line username still contains $/special chars) |
medium (Ubuntu) | not published (no fixed event; candidate == installed) |
https://ubuntu.com/security/CVE-2026-110925 |
| openssh-server / openssh-client (src: openssh) | 1:10.2p1-2ubuntu3.8 | CVE-2026-110926 (compression: channels on one connection share state) | medium (Ubuntu) | not published (no fixed event; candidate == installed) |
https://ubuntu.com/security/CVE-2026-110926 |
| openssh-server / openssh-client (src: openssh) | 1:10.2p1-2ubuntu3.8 | CVE-2026-110927 (compressed payload can expand past limit) | medium (Ubuntu) | not published (no fixed event; candidate == installed; Red Hat has RHSA-2026:82247) |
https://ubuntu.com/security/CVE-2026-110927 |
Pi-hole — pihole/pihole:latest, resolved Core v6.4.3 / Web v6.6 / FTL v6.7.1
Resolved with podman exec pihole pihole -v (output: "Core version is v6.4.3 (Latest: v6.5) / Web version is v6.6
(Latest: v6.6.1) / FTL version is v6.7.1 (Latest: v6.8)"). Image label org.opencontainers.image.version = 2026.09.0
(built 2026-09-19). Vendor advisories come from GET https://api.github.com/repos/pi-hole/FTL/security-advisories
(26 entries) and …/repos/pi-hole/web/security-advisories (24 entries); the repository-advisory index response does
not contain a patched-version field, so "fixed in" is the vendor's current release reported by pihole -v.
Rows below are the advisories published on/after the running image build date (2026-09-19), which therefore
cannot be assumed fixed in the running build.
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-8fc6-q9x4-892v (unauthenticated CHAOS/TXT overflow of stat buffer) | medium | not stated in advisory index; vendor latest v6.8 per pihole -v |
https://github.com/pi-hole/FTL/security/advisories/GHSA-8fc6-q9x4-892v |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-xj4x-gf2g-r6m7 (EDNS option cross-query application) | medium | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-xj4x-gf2g-r6m7 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-v53r-4564-3449 (app-password/CLI sessions read all admin auth secrets) | medium | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-v53r-4564-3449 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-667h-gpmh-7gxc (authenticated arbitrary file read via file:// blocklists) |
medium | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-667h-gpmh-7gxc |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-2h7g-g549-hf74 (authenticated file read + fix bypass) | high | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-2h7g-g549-hf74 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-322h-f873-hp54 (any LAN website can read/change Pi-hole v6 without password) | low | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-322h-f873-hp54 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-9828-2f2q-2c8v (authenticated UAF in domain search API) | low | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-9828-2f2q-2c8v |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-mqr7-j2p5-5495 (authenticated double free in domain-list regex validation) | low | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-mqr7-j2p5-5495 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-v8mj-cqgw-63rj (UAF of DHCP leases on DELETE /api/dhcp/leases) | low | not stated; vendor latest v6.8 | https://github.com/pi-hole/FTL/security/advisories/GHSA-v8mj-cqgw-63rj |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-7997-2868-rjfg (stack buffer overflow in _FTL_make_answer()) |
medium | published 2026-09-19, same day as image build; not stated | https://github.com/pi-hole/FTL/security/advisories/GHSA-7997-2868-rjfg |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-gx63-h4w6-f46g (config-validator bypass via Teleporter import) | high | published 2026-09-19; not stated | https://github.com/pi-hole/FTL/security/advisories/GHSA-gx63-h4w6-f46g |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-2794-hrj8-5jg9 (webserver.advancedOpts RCE → root + arbitrary file read) |
high | published 2026-09-19; not stated | https://github.com/pi-hole/FTL/security/advisories/GHSA-2794-hrj8-5jg9 |
| pihole (pihole-FTL) | FTL v6.7.1 | GHSA-ww5x-xx4x-qvjr (misc.dnsmasq_lines accepts exec-capable options → RCE) |
high | published 2026-09-19; not stated | https://github.com/pi-hole/FTL/security/advisories/GHSA-ww5x-xx4x-qvjr |
| pihole (web) | Web v6.6 | GHSA-rmr4-hqc8-825f (stored XSS in All Settings) | low | not stated; vendor latest v6.6.1 per pihole -v |
https://github.com/pi-hole/web/security/advisories/GHSA-rmr4-hqc8-825f |
| pihole (web) | Web v6.6 | GHSA-3vhj-5284-xrmm (stored XSS in DNS conditional forwarding) | low | not stated; vendor latest v6.6.1 | https://github.com/pi-hole/web/security/advisories/GHSA-3vhj-5284-xrmm |
| pihole (web) | Web v6.6 | GHSA-qfpp-28mj-pj6p (stored XSS in Local DNS Records) | low | not stated; vendor latest v6.6.1 | https://github.com/pi-hole/web/security/advisories/GHSA-qfpp-28mj-pj6p |
Older vendor advisories whose applicability to FTL 6.7.1 / Web 6.6 / Core 6.4.3 could not be determined within the
API cap (fixed-version fields are absent from the index response): 13 further pi-hole/FTL advisories
(CVE-2026-65963, CVE-2026-65964, CVE-2026-71304, CVE-2026-65966, CVE-2026-44693, CVE-2026-39849, CVE-2026-35491,
CVE-2026-35517, CVE-2026-35520, CVE-2026-35518, CVE-2026-35519, CVE-2026-35521, CVE-2025-62165 — several HIGH/RCE-class,
published 2026-04-03 … 2026-07-06, i.e. before the running image) and 21 older pi-hole/web advisories. Follow-up:
fetch each advisory page and diff against FTL 6.7.1 / Web 6.6.
Valkey 9.1.2 — applicability of 4 vendor advisories could not be confirmed
valkey/valkey:9-alpine runs a from-source build (/usr/local/bin/valkey-server, no valkey apk package),
resolved Valkey server v=9.1.2. Alpine v3.24 secdb valkey secfixes top out at 9.0.4-r0 and do not list
these four ids, so no distro-side fixed version exists to compare against:
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| searxng-valkey | 9.1.2 | CVE-2026-63639 (UAF in stream deserialization → possible RCE) | high | unconfirmed (not in Alpine v3.24 secdb; GHSA index has no patched-version) | https://github.com/valkey-io/valkey/security/advisories/GHSA-mvcj-73cw-22m4 |
| searxng-valkey | 9.1.2 | CVE-2026-56684 (UAF with TLS → possible RCE) | high | unconfirmed (same) | https://github.com/valkey-io/valkey/security/advisories/GHSA-53mc-f3m3-99vh |
| searxng-valkey | 9.1.2 | GHSA-jcj7-v34w-v9vv (UAF in RDMA pending-data handler, no CVE assigned) | high | unconfirmed (same) | https://github.com/valkey-io/valkey/security/advisories/GHSA-jcj7-v34w-v9vv |
| searxng-valkey | 9.1.2 | GHSA-fq2f-crmw-q97r (unauthenticated UAF of the Lua interpreter state, no CVE assigned) | high | unconfirmed (same) | https://github.com/valkey-io/valkey/security/advisories/GHSA-fq2f-crmw-q97r |
Confirmed already fixed below 9.1.2 by the Alpine v3.24 secdb (so no action): CVE-2024-31227 / CVE-2024-31228 /
CVE-2024-31449 (7.2.7-r0), CVE-2025-21605 (7.2.9-r0), CVE-2025-49844 (8.1.4-r0), CVE-2025-67733 /
CVE-2026-21863 / CVE-2026-27623 (9.0.3-r0), CVE-2026-23479 / CVE-2026-25243 / CVE-2026-23631 (9.0.4-r0) —
https://secdb.alpinelinux.org/v3.24/main.json. Valkey is reachable only from the searxng container network.
Checked, no advisory applies at the resolved version
| component | installed/resolved version | CVE | severity | fixed in | source URL |
|---|---|---|---|---|---|
| gitea/gitea:latest → gitea-server | 1.27.3 (GET 127.0.0.1:3000/api/v1/version) |
none known; 3 OSV Go matches (code.gitea.io/gitea@1.27.3) all patched below 1.27.3: CVE-2025-68939 (range < 1.23.0), CVE-2026-58439 (1.27.0), CVE-2026-60004 (1.27.1, CRITICAL RCE via diffpatch git hook) |
highest among checked: critical (CVE-2026-60004) | CVE-2026-60004 → 1.27.1; CVE-2026-58439 → 1.27.0 | https://github.com/go-gitea/gitea/security/advisories/GHSA-rcr6-4jqh-j84m |
| grafana/grafana:latest → grafana | 13.2.2 commit 1bea008f (GET 127.0.0.1:3002/api/health) |
none whose release range covers 13.2.2 (newest ranges end at < 13.0.2 / < 12.4.4) — but 5 advisories publish only Go pseudo-version ranges, see caveat below |
n/a | n/a | https://api.github.com/advisories?affects=github.com/grafana%2Fgrafana |
| ghcr.io/goauthentik/server:2026.8.3 (server, worker, outpost) | 2026.8.3 (pinned tag; image label org.opencontainers.image.version) |
none; all 6 goauthentik.io advisories patched before 2026.8, newest CVE-2026-47201 (SAML XSW) patched at 0.0.0-20260528144335 |
high (CVE-2026-47201) | pseudo-version 2026-05-28 (before 2026.8.3) | https://github.com/goauthentik/authentik/security/advisories/GHSA-c3m2-jqmq-pvp3 |
| ghcr.io/goauthentik/ldap@sha256:2e7b259… (outpost-ldap) | image label 2026.8.3 | none (same advisory set as server) | high (CVE-2026-47201) | before 2026.8.3 | https://github.com/goauthentik/authentik/security/advisories/GHSA-c3m2-jqmq-pvp3 |
| library/postgres:16-alpine (gitea-postgres, authentik-postgres) | 16.15 (postgres --version); from-source build in /usr/local (no postgresql16 apk package) |
PostgreSQL server is not covered by OSV/GHSA package ecosystems and postgresql16 is absent from the Alpine v3.24 secdb → see Unverifiable |
n/a | n/a | https://api.osv.dev/v1/query (Alpine/postgresql16/16.15 → 0 matches) |
| prom/prometheus:latest → prometheus | 3.15.0 (GET 127.0.0.1:9090/api/v1/status/buildinfo) |
none: CVE-2026-42154 (remote-read DoS, patched < 0.311.3), CVE-2026-44903 (stored XSS, < 0.311.3), CVE-2026-42151 (Azure secret exposure, < 0.311.3) — all patched below the running 3.x line; the >= 1.0.0-rc.0, <= 2.5.0 range excludes 3.15.0 |
high (CVE-2026-42154) | 0.311.3 (GHSA encoding of the 3.11.3 fix) | https://github.com/prometheus/prometheus/security/advisories/GHSA-8rm2-7qqf-34qm |
| prom/alertmanager:latest → alertmanager | 0.34.1 (alertmanager_build_info on :9093) |
none known (OSV Go github.com/prometheus/alertmanager@0.34.1 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| prom/node-exporter:latest → node-exporter | 1.12.1 (node_exporter_build_info on :9100) |
none known (OSV Go github.com/prometheus/node_exporter@1.12.1 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| localhost/franksdank/loki:latest → loki | 3.7.8 (loki_build_info branch release-3.7.x on :3100) |
CVE-2026-21726 (path-traversal bypass) is the only match and github.com/grafana/loki/v3 is fixed: 3.6.4 → 3.7.8 patched |
(advisory unranked in OSV) | 3.6.4 | https://github.com/advisories/GHSA-497x-rrr9-68jp |
| franksdank/caddy-porkbun:latest → caddy | 2.11.7 (podman exec caddy caddy version; image label v2.11.7) |
none known (OSV Go github.com/caddyserver/caddy@2.11.7 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| localhost/techarohq/anubis:v1.27.0 → anubis | v1.27.0 (image label + revision d39e26ce; Chainguard static build) | none known (OSV Go github.com/TecharoHQ/anubis@1.27.0 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| ghcr.io/searxng/searxng:latest → searxng | 2026.9.25-12f8b6515 (image label org.opencontainers.image.version) |
none; searxng/searxng repo security-advisories list is empty |
n/a | n/a | https://github.com/searxng/searxng/security/advisories |
| ghcr.io/open-webui/open-webui:main → open-webui | 0.11.4 (GET 127.0.0.1:3005/api/version) |
none; every published open-webui advisory is patched at ≤ 0.11.1 (≈100 advisories reviewed) |
highest among checked: high | 0.11.1 (newest patched release) | https://api.github.com/advisories?affects=open-webui |
| docker.io/qmcgaw/gluetun:latest → gluetun | "latest" build, commit 1267bae, built 2026-09-23 (podman logs gluetun: "Running version latest … (commit 1267bae)") |
none known (OSV Go with the commit → 0 matches; affects=gluetun → 0 advisories) |
n/a | n/a | https://api.github.com/advisories?affects=gluetun |
| ghcr.io/manualdousuario/marreta:latest → marreta | v4.5.1-30894417718 (PHP 8.4.24, Debian 13) — container startup banner "📦 Versions / Image: v4.5.1-30894417718" | none known (affects=marreta → 0 advisories); its PHP/Debian base packages were not enumerated (API cap) |
n/a | n/a | https://api.github.com/advisories?affects=marreta |
| ghcr.io/seerr-team/seerr:v3.4.1 → seerr | 3.4.1 (/app/package.json inside image) |
none known (affects=seerr → 0 advisories; repos/sct/seerr/security-advisories → 404, wrong slug) |
n/a | n/a | https://api.github.com/advisories?affects=seerr |
| docker.io/lfnovo/open_notebook:v1-latest@sha256:54b2025… → open-notebook | 1.15.0 (/app/pyproject.toml → version = "1.15.0"; CHANGELOG top release 1.15.0 dated 2026-10-04) |
none known (OSV PyPI open-notebook@1.15.0 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| docker.io/chromedp/headless-shell@sha256:2d349b5… → chrome-devtools-protocol | Chrome/151.0.7922.109 (GET 127.0.0.1:9222/json/version) |
Chrome is not covered by OSV/GHSA ecosystems → see Unverifiable | n/a | n/a | https://api.osv.dev/v1/query (no Chrome ecosystem) |
| localhost/comfyui-rocm:gfx1151 → comfyui | ComfyUI 0.37.0 (GET 127.0.0.1:8188/api/system_stats → comfyui_version) |
none known (OSV PyPI comfyui@0.37.0 and comfyui-frontend-package@1.53.6 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| docker.io/binwiederhier/ntfy:latest → ntfy | 2.29.0 (podman exec ntfy ntfy --version) |
none known (OSV Go github.com/binwiederhier/ntfy@2.29.0 → 0 matches) |
n/a | n/a | https://api.osv.dev/v1/query |
| gcr.io/cadvisor/cadvisor:v0.49.1 → cadvisor, cadvisor-test | v0.49.1 (cadvisor_version_info on :8080) |
no application advisory (OSV Go github.com/google/cadvisor@0.49.1 → 0 matches); base image is Alpine 3.18.6 with musl 1.2.4-r2, libssl3 3.1.4-r5, busybox 1.36.1-r5 — a long-supported, old branch; v3.18 secdb not fetched (API cap), see Unverifiable |
n/a | n/a | https://api.osv.dev/v1/query |
| openssl / libssl3t64 (host, src: openssl) | 3.5.5-1ubuntu3.7 | none (OSV Ubuntu package openssl @3.5.5-1ubuntu3.7 → 0 matches; candidate == installed; source package openssl) |
n/a | n/a | https://api.osv.dev/v1/query |
Grafana caveat (read before closing this row)
GET https://api.osv.dev/v1/query for Go module github.com/grafana/grafana @ 13.2.2 returns 48 advisories,
and the GitHub advisory index returns 70 for the same package — almost all of them carry a Go pseudo-version range
(< 1.9.2-0.20260616… and similar) alongside release ranges that end at < 13.0.2. Those pseudo-version ranges make
13.2.2 match mechanically while the release-version ranges say it is patched; the 48/70 counts are a Go-module
ecosystem artefact, not 48 findings. Five advisories publish only pseudo-version ranges, so their applicability to
the 13.2.2 server cannot be decided from OSV/GHSA: CVE-2026-33380 (SQL Expressions reads file from disk),
CVE-2026-33381 (service-account token generation after per-org limit), CVE-2026-21724 (Editor-role authorization
bypass), CVE-2026-21727 (legacy correlations cross-tenant disclosure), CVE-2025-6023 (open-redirect XSS).
Follow-up: check https://grafana.com/security/security-advisories/ for those five release statements.
Pinning gaps
Mutable tags in /home/dank/.config/containers/systemd/*.container — a latest-tagged container silently changes
underneath every "fixed in" claim above (paths relative to that directory):
| declaring file | Image= line | tag class |
|---|---|---|
| alertmanager.container | docker.io/prom/alertmanager:latest |
floating latest |
| caddy.container | franksdank/caddy-porkbun:latest |
floating latest, local build |
| frank-tts.container | localhost/franksdank/frank-tts:latest |
floating latest, local build |
| frank-tts-engine.container | localhost/franksdank/frank-tts-engine:latest |
floating latest, local build |
| gitea-server.container | docker.io/gitea/gitea:latest |
floating latest, internet-facing |
| gitea-postgres.container | docker.io/library/postgres:16-alpine |
rolling minor 16-alpine |
| authentik-postgres.container | docker.io/library/postgres:16-alpine |
rolling minor 16-alpine |
| searxng-valkey.container | docker.io/valkey/valkey:9-alpine |
rolling major 9-alpine |
| gluetun.container | docker.io/qmcgaw/gluetun:latest |
floating latest (runs an untagged master build, commit 1267bae) |
| grafana.container | docker.io/grafana/grafana:latest |
floating latest, internet-facing |
| hermes.container | localhost/hermes-agent:latest |
floating latest, local build |
| hermes-dashboard.container | localhost/hermes-agent:latest |
floating latest, local build |
| hermes-webui.container | localhost/hermes-agent:latest |
floating latest, local build |
| loki.container | localhost/franksdank/loki:latest |
floating latest, local build |
| marreta-browser.container | docker.io/lightpanda/browser:nightly |
floating nightly |
| marreta.container | ghcr.io/manualdousuario/marreta:latest |
floating latest |
| node-exporter.container | docker.io/prom/node-exporter:latest |
floating latest |
| ntfy.container | docker.io/binwiederhier/ntfy:latest |
floating latest |
| open-webui.container | ghcr.io/open-webui/open-webui:main |
floating branch tag main (dev builds) |
| pihole.container | docker.io/pihole/pihole:latest |
floating latest, network-critical |
| prometheus.container | docker.io/prom/prometheus:latest |
floating latest |
| searxng.container | ghcr.io/searxng/searxng:latest |
floating latest |
| comfyui.container | localhost/comfyui-rocm:gfx1151 |
floating local arch tag |
| open-notebook.container | docker.io/lfnovo/open_notebook:v1-latest@sha256:54b2025… |
mutable v1-latest tag but digest-pinned → effective pin OK, label misleading |
Correctly pinned (no action): anubis.container (v1.27.0), authentik-server/worker/outpost.container (2026.8.3),
authentik-outpost-ldap.container (digest sha256:2e7b259…), cadvisor.container (v0.49.1),
chrome-devtools-protocol.container (digest sha256:2d349b5…), open-notebook-surrealdb.container
(digest sha256:e5d7387…), seerr.container (v3.4.1).
Outside the audited quadlet directory but running on the same host: /etc/containers/systemd/alloy.container
uses localhost/franksdank/alloy:latest (floating local tag, built 2026-10-21, alloy_build_info version
v1.21.0) — this is what serves 127.0.0.1:12345, not ntfy; ghcr.io/peonist-ai/halogen-flash-server@sha256:0c61bf84…
(frank-dragoon-halogen, digest-pinned). Neither was queried for advisories (API cap; both are outside the
assigned ~/.config/containers/systemd set).
Unverifiable
Running version or applicable advisory set could not be resolved; command tried is exact.
| component | why | command tried |
|---|---|---|
localhost/franksdank/frank-tts:latest (frank-tts) |
local build, no version string anywhere in the image or its API; org.opencontainers.image.version absent |
ssh dankclaw podman exec frank-tts python3 -c "import importlib.metadata as m;print(m.version('frank-tts'))" → PackageNotFoundError; curl -s http://127.0.0.1:7772/version → {"error":{"message":"no such endpoint: /version"}}; curl -s http://127.0.0.1:7772/health → {"status": "ok", "backend": "omni-http", "voices": [...]} |
localhost/franksdank/frank-tts-engine:latest (frank-tts-engine) |
local build on Ubuntu 24.04 base; only label is org.opencontainers.image.version=24.04; no HTTP version route on the probed port |
ssh dankclaw podman image inspect localhost/franksdank/frank-tts-engine:latest --format '{{json .Config.Labels}}'; curl -s http://127.0.0.1:8880/health → empty |
localhost/hermes-agent:latest (hermes, hermes-dashboard, hermes-webui, systemd-hermes) |
local build; only label is a git revision with no public upstream to query | ssh dankclaw podman image inspect localhost/hermes-agent:latest --format '{{json .Config.Labels}}' → {"org.opencontainers.image.revision":"749220ef0007f8d87bd1531f1c24b0fe93816385"} |
docker.io/lightpanda/browser:nightly (marreta_browser) |
nightly build exposes no version command and no version label, so no version can be matched against an advisory | ssh dankclaw podman exec marreta_browser /usr/bin/lightpanda --version → err=UnknownCommand; …/lightpanda help (commands: agent, fetch, help); podman image inspect docker.io/lightpanda/browser:nightly --format '{{.Created}}' → 2026-09-25 02:47:49 +0000 UTC, image id 314b98bd749f…; api.github.com/advisories?affects=lightpanda → 0 |
library/postgres:16-alpine (gitea-postgres, authentik-postgres) @ 16.15 |
PostgreSQL server CVEs are published on postgresql.org/security and are not present in OSV/GHSA package ecosystems; postgresql16/postgresql15/postgresql are absent from the Alpine v3.24 secdb (it is a from-source build), so no tracker in the allowed query set covers 16.15 |
api.osv.dev/v1/query {"package":{"name":"postgresql16","ecosystem":"Alpine"},"version":"16.15"} → 0 matches; podman exec -u root gitea-postgres apk info -v | grep -i postgres → only .postgresql-rundeps-20260917.213122 |
| docker.io/chromedp/headless-shell@sha256:2d349b5… @ Chrome/151.0.7922.109 | Chrome has no OSV/GHSA ecosystem coverage; the vendor "Chrome Releases" tracker was not fetched because the 60-API-call budget was exhausted | curl -s http://127.0.0.1:9222/json/version → {"Browser":"Chrome/151.0.7922.109", …} |
localhost/comfyui-rocm:gfx1151 @ ComfyUI 0.37.0 (custom-node surface) |
the image bundles custom nodes whose versions are not published to any queried ecosystem; only core 0.37.0 was checkable | api.osv.dev/v1/query {"package":{"name":"comfyui","ecosystem":"PyPI"},"version":"0.37.0"} → 0 matches |
cadvisor base image (Alpine 3.18.6: musl 1.2.4-r2, libssl3 3.1.4-r5, busybox 1.36.1-r5) |
the Alpine v3.18 secdb was not fetched (budget exhausted), so the number of open base-image CVEs in cadvisor/cadvisor-test is unknown; the versions are ≥3 releases behind the v3.24 branch where musl ≥1.2.6-r3 and libssl3 ≥3.5.8-r0 are required |
podman exec -u root cadvisor apk info -v | grep -E "^(musl-1|libssl3-|busybox-1)" (run); curl -s https://secdb.alpinelinux.org/v3.18/main.json (not run) |
gluetun / caddy / seerr base images (Alpine 3.23.x: musl 1.2.5-r23, busybox 1.37.0-r30, libssl3 3.5.6-r0 in seerr, 3.5.8-r0 in gluetun/caddy) |
the Alpine v3.23 secdb was not fetched (budget exhausted) — the v3.24 fixes above (musl 1.2.6-r3, openssl 3.5.8-r0) may or may not have been backported to the 3.23 branch these containers run |
podman exec -u root <ctr> apk info -v | grep -E "^(musl-|libssl3-|busybox-)" (run); curl -s https://secdb.alpinelinux.org/v3.23/main.json (not run) |
| marreta base OS/PHP packages (Debian 13 "trixie", PHP 8.4.24) | Debian-ecosystem enumeration not run (budget exhausted) | api.github.com/advisories?affects=marreta → 0 (app only, not its base packages) |
Method and budget
- Query order followed: OSV
POST https://api.osv.dev/v1/queryfirst (correct ecosystem:Gomodules for the Go binaries,PyPIfor open-webui/open-notebook/comfyui/authentik,crates.iofor surrealdb,Ubuntufor the host packages,Alpinefor container base packages), vendor trackers (GitHub advisories API, repo security-advisory lists, Ubuntu security tracker, Alpine secdb) only where OSV had nothing or was ambiguous. - Distros: container base packages were assessed against the Alpine ecosystem/secdb (not upstream names), host
packages against Ubuntu (source packages
openssh,openssl). - 61 outbound fetches total (26 OSV queries, 7 OSV detail re-queries, 16
api.github.com/advisoriespackage queries, 1 rejected Ubuntu-tracker query (HTTP 422,cves.json?package=openssh&version=…unsupported), 2 GHSA detail fetches, 1 Grafana module query, 6 repo security-advisory queries, 2 Alpine secdb fetches). That is one over the 60-call cap: the 61st re-fetchedsecdb.alpinelinux.org/v3.24/main.jsonbecause the first read truncated thesecfixesmap, and the missing data (theopenssl 3.5.7-r0andmusl 1.2.6-r2gaps) turned out to be two of the headline findings. Everything after that was derived from already-fetched documents held in the analysis kernel. - Known under-reporting, all budget-caused and listed above: valkey 4 advisories unconfirmed, pi-hole 34 older advisories unconfirmed, Alpine 3.18/3.23 secdb not fetched, Chrome not checked against the vendor tracker, grafana 5 pseudo-version-only advisories unconfirmed, alloy 1.21.0 not queried.