diff --git a/AUDIT.md b/AUDIT.md index ac0d3bb..8056652 100644 --- a/AUDIT.md +++ b/AUDIT.md @@ -1,6 +1,7 @@ # Cycles Protocol v0.1.25 — Server Implementation Audit -**Date:** 2026-04-26 (v0.1.25.18 — dependency hygiene matching `cycles-server-events` v0.1.25.12: bump `spring-boot-starter-parent` 3.5.13 → 3.5.14 (patch with upstream security hardening — constant-time comparison for remote DevTools secret, `RandomValuePropertySource` SecureRandom, hostname verification applied consistently for Cassandra/RabbitMQ SSL, plus symlink-handling fixes); **drop `10.1.54` override** since Spring Boot 3.5.14's BOM now manages 10.1.54 directly (verified against `spring-boot-dependencies-3.5.14.pom`); commons-lang3 3.18.0 override retained — Spring Boot 3.5.14's BOM still manages 3.17.0. **Jedis 7.4.1 → 6.2.0** to align all three services on the same Redis client major (events at 6.2.0 since v0.1.25.12, admin at 6.2.0 in v0.1.25.41); all call sites use stable APIs (`Jedis`, `JedisPool`, `Pipeline`, `Response`, `ScanParams`, `ScanResult`, `JedisNoScriptException`) — no 7.x-only API usage. No code changes; all 152 tests pass.), +**Date:** 2026-05-21 (v0.1.25.19 — supply-chain CVE patch; re-pin `tomcat.version=10.1.55` in `cycles-protocol-service/pom.xml` to close 7 new CVEs flagged by Trivy against `tomcat-embed-core 10.1.54` (CRITICAL: CVE-2026-43512, CVE-2026-43515, CVE-2026-41293; HIGH: CVE-2026-43513, CVE-2026-42498, CVE-2026-41284; LOW: CVE-2026-43514 — all fixed in 10.1.55 / 11.0.22). Mirrors the v0.1.25.16 pattern; the override was dropped in v0.1.25.18 when SB 3.5.14's BOM caught up to 10.1.54, now re-added one patch higher because Trivy DB updates between 2026-05-11 (last green main run) and 2026-05-21 surfaced a new wave on the same artifact. Removable once Spring Boot ships with 10.1.55+ as its managed version. `commons-lang3.version=3.18.0` retained (CVE-2025-48924 still unfixed in SB 3.5.14's managed 3.17.0). No production code or test changes; all 537 protocol-service tests pass.), +2026-04-26 (v0.1.25.18 — dependency hygiene matching `cycles-server-events` v0.1.25.12: bump `spring-boot-starter-parent` 3.5.13 → 3.5.14 (patch with upstream security hardening — constant-time comparison for remote DevTools secret, `RandomValuePropertySource` SecureRandom, hostname verification applied consistently for Cassandra/RabbitMQ SSL, plus symlink-handling fixes); **drop `10.1.54` override** since Spring Boot 3.5.14's BOM now manages 10.1.54 directly (verified against `spring-boot-dependencies-3.5.14.pom`); commons-lang3 3.18.0 override retained — Spring Boot 3.5.14's BOM still manages 3.17.0. **Jedis 7.4.1 → 6.2.0** to align all three services on the same Redis client major (events at 6.2.0 since v0.1.25.12, admin at 6.2.0 in v0.1.25.41); all call sites use stable APIs (`Jedis`, `JedisPool`, `Pipeline`, `Response`, `ScanParams`, `ScanResult`, `JedisNoScriptException`) — no 7.x-only API usage. No code changes; all 152 tests pass.), 2026-04-19 (v0.1.25.17 — supply-chain CVE fix follow-up; pin `commons-lang3.version=3.18.0` to close CVE-2025-48924 (Trivy HIGH) on the `commons-lang3-3.17.0` jar that ships in the fat-jar image via `swagger-core-jakarta` (OpenAPI UI). Spring Boot 3.5.13's BOM manages commons-lang3 at 3.17.0 — override is removable once Spring Boot ships a managed version of 3.18.0+. All 152 tests pass), 2026-04-19 (v0.1.25.16 — supply-chain CVE fix; bump `spring-boot-starter-parent` 3.5.11 → 3.5.13 and pin `tomcat.version=10.1.54` to close 5 HIGH/CRITICAL CVEs flagged by the new PR-time Trivy scan — CVE-2026-22732 CRITICAL on `spring-security-web` (fixed 6.5.9, pulled in transitively by 3.5.13), CVE-2026-29129 HIGH + CVE-2026-29145 CRITICAL on `tomcat-embed-core` (fixed 10.1.53, transitive), CVE-2026-34483 HIGH + CVE-2026-34487 HIGH on `tomcat-embed-core` (fixed 10.1.54, explicit property override since Spring Boot 3.5.14 with 10.1.54+ as managed version hasn't shipped yet); no code changes, all 152 tests pass), 2026-04-18 (v0.1.25.15 — runtime audit-log retention TTL fix; `AuditRepository` now writes `audit:log:{id}` keys with `EX ttl` via the same Lua shape admin uses, configurable via `audit.retention.days` (default 400d), daily `@Scheduled` sweep prunes stale ZSET index pointers; closes a gap where runtime-written rows persisted indefinitely and did not participate in admin's authenticated-tier retention), diff --git a/CHANGELOG.md b/CHANGELOG.md index 8981a28..0b2b9cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,38 @@ changes to request/response bodies or Lua-script semantics would require a minor bump. "Internal signature changes" (e.g. Java method parameters) are called out but are not breaking to API clients. +## [0.1.25.19] — 2026-05-21 + +Supply-chain CVE patch. No code, API, or Lua-script changes — pom-only. + +### Fixed (security) + +- Re-pin `tomcat.version=10.1.55` in `cycles-protocol-service/pom.xml` + to close seven CVEs flagged by Trivy against + `org.apache.tomcat.embed:tomcat-embed-core 10.1.54` (the version + Spring Boot 3.5.14's BOM manages today): + - **CVE-2026-43512 (CRITICAL)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-43515 (CRITICAL)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-41293 (CRITICAL)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-43513 (HIGH)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-42498 (HIGH)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-41284 (HIGH)** — fixed in 10.1.55 / 11.0.22. + - **CVE-2026-43514 (LOW)** — fixed in 10.1.55 / 11.0.22. +- The v0.1.25.16 override (`tomcat.version=10.1.54`) was removed in + v0.1.25.18 once Spring Boot 3.5.14's BOM caught up. This re-adds the + same pattern one patch higher. Removable again once Spring Boot + ships with 10.1.55+ as its managed version. + +### Retained + +- `commons-lang3.version=3.18.0` override stays (CVE-2025-48924 still + unfixed in Spring Boot 3.5.14's BOM-managed 3.17.0). + +### Notes + +- No production-code or test changes. All 537 protocol-service tests + pass (374 data + 163 api). Wire format unchanged from v0.1.25.18. + ## [0.1.25.18] — 2026-04-26 Dependency hygiene aligning all three Cycles services (events / server / diff --git a/cycles-protocol-service/pom.xml b/cycles-protocol-service/pom.xml index cffacd8..895d272 100644 --- a/cycles-protocol-service/pom.xml +++ b/cycles-protocol-service/pom.xml @@ -18,7 +18,7 @@ cycles-protocol-service-api - 0.1.25.18 + 0.1.25.19 21 21 21 @@ -27,6 +27,17 @@ the image transitively via swagger-core-jakarta (OpenAPI UI). Remove once Spring Boot ships with 3.18.0+ as its managed version. --> 3.18.0 + + 10.1.55