USER-WP-0038: own runtime image OS-package hardening for RISK-F-0016
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 680842@bnt-lap001
Assistant-Session: 54eb9e8e-7d6b-4f0c-b7a6-a6db62075883
This commit is contained in:
tegwick 2026-10-14 09:30:23 +02:00
parent 2f20c02cad
commit c123cd11a3

View file

@ -0,0 +1,54 @@
---
id: USER-WP-0038
type: workplan
title: "Runtime image OS-package hardening for RISK-F-0016"
domain: communication
repo: user-engine
status: ready
owner: codex
topic_slug: communication
created: "2026-10-14"
updated: "2026-10-14"
related:
- RISK-F-0016
- RAPP-USER-ENGINE-WP-0004
- USER-WP-ADHOC-2026-10-11
---
# Runtime image OS-package hardening
Durable owner record for the permanent fix of RiskNexus finding RISK-F-0016
(`~/risk-nexus/findings/RISK-F-0016-user-engine-os-runtime-findings.md`).
RAPP-USER-ENGINE-WP-0004 tracked the runtime-package rollout only and is
closing; image content is user-engine source work and is owned here.
Baseline: live image
`forgejo.coulomb.social/coulomb/user-engine@sha256:f239bbf332b8eb87320c86390fddca1dcb4f7c628a7af75e79dee8058d446a7b`
on Python 3.12 slim-trixie base `a6e34c59`
(`docs/evidence/2026-10-11-runtime-base-refresh.md`). Fresh scan 2026-10-14
(rapp-user-engine 7567e7e, `docs/evidence/2026-10-14-risk-review/`): 0 CRITICAL,
44 HIGH across 8 CVEs, none with a fixed version.
## Remove or replace unfixed-HIGH OS packages in the runtime image
```task
id: USER-WP-0038-T01
status: todo
priority: high
```
Target the 2026-10-14 HIGH set: util-linux family (bsdutils, mount, libblkid,
libmount, libuuid, related) CVE-2026-76642/78408/78409/78410 (36 occurrences);
ncurses CVE-2025-69720 (4); libsystemd0 CVE-2026-16742 (2); libacl1
CVE-2026-54369; perl-base CVE-2026-9538 (fix_deferred). Either prune packages
the runtime does not need from the final stage, or move to a supported smaller
Python 3.12 base (distroless/chainguard-style), preserving exact application
bytes and resolved dependency versions. No scanner suppression, ignore-unfixed
or allowlist may be used to reach acceptance.
Acceptance: clean owner CI publication of a new digest from a committed source
revision with provenance; unsuppressed fresh scan shows zero CRITICAL and every
remaining HIGH either resolved or individually dispositioned with reason; full
source and image test suites pass. Live rollout is out of scope: hand the digest
to rapp-user-engine as a separate, scoped approval. Then update RISK-F-0016
fix_tracking to this task.