luigidemasi opened a new issue, #83: URL: https://github.com/apache/camel-kit/issues/83
> Imported from [luigidemasi/camel-kit#182](https://github.com/luigidemasi/camel-kit/issues/182), opened by [luigidemasi](https://github.com/luigidemasi) on 2026-08-20. > Closed on 2026-08-26 without a linked pull request. --- ## Description Issue luigidemasi/camel-kit#149's Product Boundary is explicit about what Ship will **not** require: a hostile-process sandbox, exact executable-closure certification, supply-chain attestation, content-addressed evidence quarantine, or HMAC event chains — and it defines digests as ordinary SHA-256 for staleness detection, not security attestations. The stated threat model protects workflow correctness and accidental credential/state leakage; it explicitly does not defend against a malicious process already running as the developer. The delivered implementation contains a substantial layer that exceeds that boundary: a fail-closed bubblewrap namespace sandbox with profile digests, per-command whole-JDK freeze/copy/triple-digest passes, a content-locked payload archive verified six times per run, double-download SHA-512 re-verification of Maven Central artifacts in two layers, field-exact certification of the worker's persisted session transcript that nothing consumes, a launcher that builds/digests/deletes a JAR whose digest nothing reads, and TOCTOU identity-bracketing on files only a same-user process could race. This costs roughly 5,000 main lines plus mirror tests, real per-command wall-clock in VALIDATE, and a second security model reviewers must reason about — without backing any promise the product makes. ## Plan Remove the boundary-exceeding machinery in a reviewed PR series, keeping everything the acceptance criteria require (atomic state updates, staleness digests, staging isolation, command evidence with redacted args and retained logs, secret redaction, required-Citrus gating, oversight, cancellation/recovery, the stub-start camel-main launcher as runtime authority): - [x] 1. Remove the main-package evidence command (`ShipMainPackageMain`): its JAR is deleted in the same invocation and the reported digest has no consumer. - [x] 2. Reduce the evidence execution stack: drop the bubblewrap sandbox, JDK freeze/copy digests, repeated payload content-lock verification, the sandboxed `--payload-version` echo, quarantine marker files, and the validator's re-attestation of its own in-process runner output. - [x] 3. Drop the Maven Central double-download in resolver and evidence layers (Aether's `CHECKSUM_POLICY_FAIL` against Central remains) and the duplicated symlink walks. - [x] 4. Replace `CatalogArtifactReader`'s TOCTOU machinery with plain reads (the call-site digest check stays) and drop `CatalogEvidenceSet` self-re-validation. - [x] 5. Worker: remove transcript field-exact certification, the streaming redaction engine (inputs are bounded; string-level redaction suffices), recovery re-attestation of the worker's own logs, and the interrupt-handler salvage excess (the abort/timeout-resume protocol core stays). - [x] 6. Security/controller: remove the identity-bracketing half of `ShipSecureFilesystem`, uid/gid from the snapshot staleness digest, coordinator lease hardening beyond the lock, `writeOnce` ceremony, staging byte-prefix forensics, retained-log post-move permission re-reads; relocate the publication registry from `/var/tmp` under the state home. Each PR passes the full reactor before commit; mirror tests go with their code, capability tests stay. The authenticated Pi/Linux live gate runs before the next release. ## Website impact To assess per cluster; the sandbox removal (cluster 2) changes documented VALIDATE behavior and will need a website update in the same workstream. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
