Security results: v0.3.3 (patch of Operate: AI usage and the retention of the AI history)#
Recorded on 2026-10-27 from the public CI history, the reports of the runs and a check of the published images. Rules: README.md. Written before the GitHub Release was published (it was a draft), as rule 3 asks.
What was run, and on which commit#
Release commit (tag v0.3.3) |
11d3d07, 2026-10-27 |
| Commit the full security run was made on | 58522c1 ("Release notes 0.3.3"), one commit before the release commit |
| What differs between the two | the version number in 21 package.json files, the release entry of CHANGES.md and the alignment line of docs/release/README.md. No code. |
| The run | workflow security, started by hand with the DAST scan ticked: run 40484236782, 2026-10-27 |
| Result | all jobs succeeded |
| The run on the release commit itself | push run 40487448351: success |
| Other runs on the tag | upgrade 40487447634 (v0.3.2 to this tree, migration 0073 included): success; release 40487447627 (six images for amd64 and arm64, cosign signature, build provenance, draft release): success |
| The feature, on its branch | run 40417192395 on feat/ai-usage (DAST included): success |
| Job | What it does | Result |
|---|---|---|
| static scans | dependency audit, secret scan of the tree and of the history, static analysis, shell lint, container and infrastructure configuration | success (accepted findings in scripts/security/static/baseline.json, each with a reason and a review date) |
| API + browser suites on a disposable stack | the API security suites, the unit tests, the browser tests, and the scan of the stack's images | success |
| workspace isolation (two stacks) | two workspaces started side by side; one must not reach the other | success |
| DAST (OWASP ZAP) | active scan of the running stack | success (PASS) |
| TLS template (testssl.sh), two nginx images | the TLS policy of the rendered proxy configuration | success (both images) |
Counts, read from the reports of run 40484236782 (commit 58522c1): API suites 2366 passed, 0 failed, 2 skipped (94 test files; 25 tests more than 0.3.2,
mostly the new ai-usage suite and the usage meter tests); browser tests 56 passed, 0 failed, 5 skipped; isolation 14 passed, 0 failed.
The static report lists as warnings that do not fail the run the four semgrep hits named in the earlier records (three bypass-tls-verification in
packages/core/src/db/client.test.ts, one react-dangerouslysetinnerhtml in packages/sdk/react/src/defaults.tsx). No high or critical advisory.
Image scan (trivy image, HIGH/CRITICAL, fixed only), run 40484236782: the six own images and garage 0; postgres:16-alpine 26, in the Go standard
library of gosu (reported, not gating, decision of the owner 2026-10-23; F-050).
The published images. After the release run, the six images on ghcr.io were checked by the digests in the GitHub Release:
- the cosign signature of each image (keyless, identity
https://github.com/swina/whoobe_project/.github/workflows/release.yml@refs/tags/v0.3.3, issuerhttps://token.actions.githubusercontent.com, cosign 2.5.0): verified, 6 of 6; - the SLSA build provenance stored with each image (
cosign verify-attestation --new-bundle-format --type slsaprovenance1, same workflow and tag): verified, 6 of 6; trivy image0.58.1 (HIGH/CRITICAL, fixed only) on the published digests, amd64: 0 for all six.
The reports of run 40484236782 (security-reports-v0.3.3.zip) and the CycloneDX SBOMs of the six images (generated by trivy 0.58.1 from the published digests,
amd64) are attached to the GitHub Release, before publication.
The runs that failed first#
None: every run of the security workflow between the 0.3.2 record and the release commit succeeded.
What this run did not cover#
The list of v0.3.0 still holds. For this release in particular:
- the AI functions were tested in CI with a fake OpenAI-compatible provider; against a real provider (OpenRouter) only images, a snippet and the text of an element were tried, on a development machine; the website wizard and the page translation were not;
- the migration 0073 was run by the
upgradeworkflow on the test data and on a development database, not yet on the reference host; - arm64 was built only by the release workflow; no published arm64 image was scanned for this release.
Open items at the time#
Listed with owner and reason in status-summary.md, section 3: F-003 (moderate advisories; braces, high with no fix, accepted until
2027-01-31), F-008, F-014, F-050 (gosu in the postgres image), the TLS check on a live host. F-064 is fixed in this release. The register has no entry kept private
under the disclosure policy.
Last updated