docs: refresh the security model against the current codebase - #25054
Conversation
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
gnodet
left a comment
There was a problem hiding this comment.
Well-researched documentation refresh. The two key factual corrections are verified as accurate against the current codebase:
-
Profile default:
DefaultConfigurationProperties.profiledefaults to null (notprod), andProfileConfigurer.configureMain()returns early when unset, leaving the security policy atwarn. The change from "Stay on the defaultprodprofile" to "Explicitly select theprodprofile" is an important improvement. -
Header filter namespace: CAMEL-23543 removed
org.apache.camel.fromCAMEL_FILTER_STARTS_WITH(current value:{"Camel", "camel"}). The documentation now correctly reflects this.
Minor notes (non-blocking):
- The YAML
unsafe_deserialization.exampleslist includes CVE-2026-46590 but omits CVE-2026-43867 mentioned alongside it in the prose - References to the YAML attachment don't use an Antora
attachment$macro for downloadable links project_version: 4.22.0-SNAPSHOTwill need manual updates on release
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code on behalf of Guillaume Nodet
Reconcile docs/.../security-model.adoc with the 4.22.0-SNAPSHOT tree: - Correct the profile default: the framework applies no profile by default (security policy `warn`); `prod` (fail) and `dev` (relaxed) are both explicit opt-ins. `prod` remains the reference posture for triage. The model previously claimed Camel "defaults to prod". - Tighten the header-filter namespace to `Camel*`/`camel*` and drop the stale `org.apache.camel.*` claim (removed in CAMEL-23543 as a Camel 1.x artifact; the default filter matches `Camel*` case-insensitively). - Reflect CAMEL-23543 (Camel 4.21): DefaultHeaderFilterStrategy blocks the `Camel*` namespace by default, in both directions, for every consumer and producer, with no per-component boilerplate. - Add a "Configuration variants that change the model" section (profiles, security-policy levels, per-option opt-ins) consolidating the knobs that move the trust boundary. - Refresh the in-scope-class examples with the published 2026 CVE wave (all IDs verified against the published advisory index). - Add a machine-readable companion (attachments/security-model.yaml) as a derived triage index; the prose page remains canonical. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5ef7c2d to
e07f538
Compare
|
🧪 CI tested the following changed modules:
🔬 Scalpel shadow comparison — Scalpel: 1 tested, 0 compile-only — current: 0 all testedMaveniverse Scalpel detected 1 affected modules (current approach: 0).
|
What
A codebase-driven refresh of the project Security Model, reconciling it with the current
4.22.0-SNAPSHOTtree. No new security commitment is introduced — every change corrects, grounds, or indexes something already in the ratified model (strict-superset rule).Why
The model's last substantive change was #23503 (2026-05-25). Verifying its load-bearing claims against the code surfaced two factual drifts and one posture improvement worth reflecting, plus two rubric sections that were still thin.
Changes
Factual corrections (code contradicts the doc):
prodprofile". It does not:DefaultConfigurationProperties.profileis null by default andProfileConfigurerapplies no profile when unset, leaving the security policy atwarn. Bothprod(→fail) anddev(→ relaxed) are explicit opt-ins. Corrected across the out-of-scope, disclaimed-properties and deployment-hardening sections;prodremains the reference posture against which findings are judged.Camel*/org.apache.camel.*" wording toCamel*(matched case-insensitively). Theorg.apache.camel.prefix was deliberately removed in CAMEL-23543 (CAMEL-23543: Centralize and harden Camel* header filtering in DefaultHeaderFilterStrategy #23652) as a Camel 1.x artifact; the defaultCAMEL_FILTER_STARTS_WITHis{"Camel","camel"}.Posture reflected:
DefaultHeaderFilterStrategynow blocks theCamel*namespace by default, in both directions, for every consumer/producer — no per-component boilerplate. Updated the known-limitation and component-author guidance accordingly.Rubric gaps filled:
attachments/security-model.yaml— a derived triage index (entry-point trust, in/out-of-scope families, config variants, claimed/disclaimed properties, known non-findings, dispositions). The prose page remains canonical.Examples refreshed:
Notes for reviewers
org.apache.camelfilter claims remain.prod-as-reference-posture framing was chosen deliberately over modelling the literal no-profile default; happy to flip to the more literal framing if you prefer.Claude Code on behalf of oscerd
🤖 Generated with Claude Code