From 00c355d0c187633c243bb7410cb39f8af1b43f95 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 14 Oct 2026 09:33:27 +0200 Subject: [PATCH] RISK-F-0016: first grading and 2026-10-14 scanner refresh Grade low (I2 x L1, same at production), disclosure public, escalation none. Record the unchanged f239 rescan (0 CRITICAL, 44 HIGH, 8 CVEs, no fixed versions), move fix tracking to USER-WP-0038-T01, record the ungraded rollback-image constraint, and note the pending (not accepted) renewal infd-20261014-user-engine-risk-renewal-r1 ahead of the 2026-10-18T23:59:59Z disposition expiry. Check recorded as moved. Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 680842@bnt-lap001 Assistant-Session: 54eb9e8e-7d6b-4f0c-b7a6-a6db62075883 --- REGISTER.md | 6 +- ...-F-0016-user-engine-os-runtime-findings.md | 87 ++++++++++++++++++- 2 files changed, 90 insertions(+), 3 deletions(-) diff --git a/REGISTER.md b/REGISTER.md index b0ee819..db70234 100644 --- a/REGISTER.md +++ b/REGISTER.md @@ -1,13 +1,14 @@ # Register -Generated by `tools/register_index.py` from `findings/`. Do not edit by hand. Last built 2026-10-04. +Generated by `tools/register_index.py` from `findings/`. Do not edit by hand. Last built 2026-10-14. -6 live of 15 findings; 3 notes below the floor. +7 live of 16 findings; 3 notes below the floor. ## Findings | ID | Finding | System | Severity | Disclosure | Escalation | Fix owner | Status | Cadence | Next check | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| [RISK-F-0016](findings/RISK-F-0016-user-engine-os-runtime-findings.md) | Published User Engine readback candidate retains 44 scanner HIGH OS occurrences | user-engine | low | public | none | user-engine | open | instant (0) | **due** | | [RISK-F-0015](findings/RISK-F-0015-emergent-claude-owner-routing.md) | Retained Claude 0.2.1 answers misroute model-switch and zones questions | emergent-security | low | public | none | emergent-security | open | instant (0) | **due** | | [RISK-F-0014](findings/RISK-F-0014-emergent-loaded-withdrawal-snapshot.md) | Loaded Emergent 0.2.1 continues serving a source after withdrawal and reseal | emergent-security | low | public | none | emergent-security | open | instant (0) | **due** | | [RISK-F-0013](findings/RISK-F-0013-emergent-unsealed-card-receipt.md) | Loaded Emergent 0.2.1 returns unsealed card bytes under the reviewed digest | emergent-security | medium | public | none | emergent-security | open | instant (0) | **due** | @@ -30,6 +31,7 @@ Hazards created by acting in the wrong order. Each binds another finding's remed | From | Binds | Severity | Constraint | | --- | --- | --- | --- | +| RISK-F-0016 | — | **ungraded** | On the approved rollback to user-engine@sha256:312dcb06 — executing it (default if the renewal is not answered) restores an image that scans worse: 3 CRITICAL, 88 HIGH, 27 HIGH/CRITICAL CVEs (2026-10-14). Its exposure is unassessed; rollback must not be read as lowering this risk. | | RISK-F-0002 | RISK-F-0001 | **lifted** | LIFTED 2026-08-19 — flex-auth /v1/check now authenticates callers (RISK-F-0001 fixed). Enabling policy.enabled is now an availability question for ops-warden, no longer an attestation hazard. | ## Waiting on someone diff --git a/findings/RISK-F-0016-user-engine-os-runtime-findings.md b/findings/RISK-F-0016-user-engine-os-runtime-findings.md index 5a754d4..505ad3c 100644 --- a/findings/RISK-F-0016-user-engine-os-runtime-findings.md +++ b/findings/RISK-F-0016-user-engine-os-runtime-findings.md @@ -9,7 +9,25 @@ date_reported: "2026-10-11" system: user-engine environment: build fix_owner: user-engine -fix_tracking: RAPP-USER-ENGINE-WP-0004 +fix_tracking: USER-WP-0038-T01 +closure_condition: "a remediated User Engine image from USER-WP-0038-T01, scanned unsuppressed without these HIGH occurrences, is rolled out under its own scoped approval and verified live" +severity: low +severity_at_production: low +impact: I2 +likelihood: L1 +fidelity_modifier: false +production_rescore: false +disclosure: public +escalation: none +constraint_severity: ungraded +constraint: "On the approved rollback to user-engine@sha256:312dcb06 — executing it (default if the renewal is not answered) restores an image that scans worse: 3 CRITICAL, 88 HIGH, 27 HIGH/CRITICAL CVEs (2026-10-14). Its exposure is unassessed; rollback must not be read as lowering this risk." +graded_by: risk-nexus +ruling: "RISK-F-0016 register ruling 2026-10-14" +checked_by: "claude/risk-nexus" +last_checked: "2026-10-14T07:33:04Z" +next_check: "2026-10-14T07:33:04Z" +cadence: instant +clean_streak: 0 --- Exact image forgejo.coulomb.social/coulomb/user-engine@sha256:f239bbf332b8eb87320c86390fddca1dcb4f7c628a7af75e79dee8058d446a7b has 44 Trivy HIGH package/CVE occurrences across eight unique CVEs and zero CRITICAL. No FixedVersion is advertised for those scanned Trixie packages; upstream/Sid fixes do exist. Scan SHA256 17b793f13bd19fa87bba840ced3c9c40a78a78feda569019e92c347dc7f3e76a, no severity suppression or ignore-unfixed. Source image revision1bb7cacc98479f56f6b1c28c000479efd260a944; native CI repair ac8b04edc7ae51492ee2e19e1ff075cf37e6708b passed without runtime input changes. @@ -37,3 +55,70 @@ ServiceAccount/audience and do not establish credential isolation. Original preparation statement above remains historical. Execution/review receipts: rapp-user-engine/docs/evidence/2026-10-11-native-readback and NetKingdom docs/evidence/2026-10-11-user-readback-integration-review. + +## Register ruling — 2026-10-14 + +**First grading.** Headline **low**, `I2` x `L1`, no fidelity modifier; the +same grade at production, so no mandatory production re-score. + +- **Impact `I2`.** Every one of the eight CVEs is a local-utility, privileged + workflow or crafted-input issue in OS packages inside one container + (util-linux mount/nsenter, libacl1, ncurses `infocmp`, libsystemd0, perl-base + Archive::Tar). An occurrence is confined to the User Engine pod: denial of + service or local misuse of one system, recoverable. Application compromise + and mounted-credential exposure are not created by these packages and are + not scored here. No false record is produced, so no modifier. +- **Likelihood `L1`.** Reaching any of them first needs code execution inside + the pod, a foothold no ordinary process grants; no reviewed route invokes the + affected utilities, and non-root, no-new-privileges, dropped capabilities and + read-only root constrain the setuid/namespace paths. Exposure is "not + established" and the grade declines with the reporter rather than assuming + either reachability or impossibility. +- **Production.** Real identity data would not change the reach, and the + occurrence stays confined to one system; `low` holds. +- **What would change the grade:** a reviewed path by which a request reaches + an affected package, a published exploit for one of these CVEs, a new + CRITICAL on f239, or loss of any of the stated container controls. + +**Disclosure `public`.** The CVEs and package versions are public advisories; +the text gives no foothold and does not shorten the path beyond scanning the +image. Build-mode default applies. + +**Escalation `none`.** No real tenant data (trigger 1), no outside obligation +(2), no spend (3), no ownership dispute (4), not stalled (5). The founder's +decision on the temporary disposition is already routed by the owner as an +informed decision; asking again through the register would make the founder the +queue. + +**Constraint.** The rollback named as the default if the renewal is not answered +restores sha256:312dcb06…, which on 2026-10-14 scans 3 CRITICAL, 88 HIGH, 27 +HIGH/CRITICAL CVEs. Its exposure is not assessed here, so the constraint is +recorded ungraded; it must not be read as a lower-risk recovery. + +## Scanner refresh and fix routing — 2026-10-14 + +rapp-user-engine re-scanned the exact live image f239 with the same pinned Trivy +(DB updated 2026-10-14T01:19Z, remote source, no suppression or +ignore-unfixed): 0 CRITICAL, 44 HIGH, the identical eight CVEs, none with a +fixed version (perl-base `fix_deferred`). Live Deployment unchanged: generation +73 observed, Ready 1, image f239. Receipts: +rapp-user-engine/docs/evidence/2026-10-14-risk-review/ (README.md, +review-receipt.json). + +Fix tracking moves from RAPP-USER-ENGINE-WP-0004 (closing) to the durable owner +record USER-WP-0038-T01 +(user-engine/workplans/USER-WP-0038-runtime-image-os-package-hardening.md): +prune or replace the affected OS packages with tests, provenance and an +unsuppressed scan. The remediated image needs its own scoped rollout approval. + +The temporary human disposition infd-20261011-user-engine-readback-r2@1 still +expires 2026-10-18T23:59:59Z. A renewal memo, +infd-20261014-user-engine-risk-renewal-r1 (to the earlier of 2026-11-15T23:59:59Z +or the remediated rollout, weekly rescans), is being submitted for the founder's +answer. **It is not accepted and this register does not record it as +accepted.** The next check must confirm, no later than 2026-10-18T23:59:59Z, +either the founder's answer to the renewal or the executed rollback. + +## Reviews + +- **2026-10-14** — not clean: first grading (low, I2 x L1, public, no escalation); 2026-10-14 rescan of f239 unchanged at 0 CRITICAL / 44 HIGH, 8 CVEs, no fixed versions; fix tracking moved to USER-WP-0038-T01; disposition expires 2026-10-18T23:59:59Z, renewal infd-20261014-user-engine-risk-renewal-r1 pending founder answer, not accepted. Cadence instant → instant; checked again immediately.