This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git

commit 4e853962abb9ddb4f22d1c4d47d591aeafa09784
Author: Robert Lazarski <[email protected]>
AuthorDate: Mon Sep 7 16:08:45 2026 -1000

    Say on the home page that 2.0.2 is a security release
    
    Also records why the context externalization machinery stays. AXIS2-6107 
scoped
    its removal and it should not be done: SessionContext is an HttpSession
    attribute that containers serialize when persisting sessions, 
EndpointReference
    round trips only because its custom externalization handles Axiom values 
that
    are not serializable, and persisting a paused MessageContext is a capability
    rather than dead code. SECURITY.md item 4 now carries those three reasons 
so a
    scan finding here has a citable answer instead of being re-argued. The 
Rampart
    paragraph also still promised to ship after 2.0.1.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 SECURITY.md             | 23 +++++++++++++++++++++++
 src/site/xdoc/index.xml | 17 +++++++++++++++--
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/SECURITY.md b/SECURITY.md
index 4a7f5de377..d49379573b 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -321,6 +321,29 @@ migration from `commons-fileupload` 1.x to 
`commons-fileupload2` in
    when an integrator persists or replicates contexts, and deserializing
    attacker-influenced bytes stays dangerous whatever is configured here.
 
+   **Why the machinery is not simply deleted.** Clustering was the reason it
+   was written and clustering is gone (item 5), so removing it is the obvious
+   next question and scanners will keep asking it. It was scoped in
+   AXIS2-6107 and deliberately not done, for three reasons that are worth
+   recording so the question does not need re-answering:
+
+   - `SessionContext` is stored as an `HttpSession` attribute
+     (`AxisServletListener`), and servlet containers serialize session
+     attributes when they persist sessions across a restart. That has nothing
+     to do with clustering, so its serializability is load-bearing today.
+   - `EndpointReference` carries Axiom `OMElement` and `OMAttribute` values,
+     which are not serializable. Custom externalization is *why* it round
+     trips at all, and `EndpointReferenceTypeTest` asserts that contract.
+     Replacing it means writing new Axiom-aware serialization code, which is
+     more XML-specific machinery, not less.
+   - Persisting a paused `MessageContext` and resuming it later is a
+     capability, exercised by `PausingHandlerExecutionTest`. Removing the
+     externalization removes the capability, not just dead code.
+
+   The mitigation above is therefore the answer rather than deletion: the
+   proxy refusal and the scoped filter bound what these streams will accept,
+   and nothing reaches them from the network.
+
 5. **Clustering removed:** The entire clustering module (Tribes-based
    inter-node communication with unvalidated deserialization) has been
    removed from the codebase.
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index e9a4e7e9fc..ed296cc605 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -47,8 +47,21 @@ where a JVM cannot run. The same MCP client connects to both 
Axis2/Java
 (enterprise) and Axis2/C (embedded) with identical protocol and identical
 results. See the
 <a href="https://axis.apache.org/axis2/c/core/";>Axis2/C site</a> for 
details.</p>
+<p><strong>Apache Axis2/Java 2.0.2 is a security release.</strong> Most of its
+content comes from security reports and from security reviews of the code, and
+several defaults now refuse what earlier versions allowed: decoupled
+WS-Addressing responses, service dispatch from the SOAP body namespace, and the
+administration console's shipped credentials. Request bodies, multiref
+resolution and metadata exposure are bounded or gated as well. Every change has
+a documented way to restore the previous behaviour where a deployment genuinely
+needs it, collected in the <em>Upgrading from 2.0.1</em> section of the
+<a href="release-notes/2.0.2.html">2.0.2 release notes</a> &#x2014; read that
+section before upgrading rather than after. Advisories for the reported issues
+are published after the release, which is this project's normal order.
+<code>SECURITY.md</code> in the source distribution carries the threat model,
+including what is deliberately <em>not</em> covered.</p>
 <p><strong>Apache Rampart 2.0.0 is ready for release</strong> and will ship
-immediately after Axis2/Java 2.0.1, on which it depends. Rampart 2.0.0
+immediately after Axis2/Java 2.0.2, on which it depends. Rampart 2.0.0
 brings WS-Security up to date with the Jakarta EE 9+ / Axis2 2.0.x line
 (<code>jakarta.*</code> namespaces, modern WSS4J, current OpenJDK support)
 so legacy SOAP services with WS-Security policies can run unchanged on
@@ -58,7 +71,7 @@ server/JDK combinations listed below. See the
 <a href="https://axis.apache.org/axis2/java/rampart/";>Apache Rampart
 site</a> for details.</p>
 <p>Apache Axis2, Axis2, Apache, the Apache feather logo, and the Apache Axis2 
project logo are trademarks of The Apache Software Foundation.</p>
-<h3><em>Why Apache Axis2 in 2026:</em></h3>
+<h3><em>Why Apache Axis2 today:</em></h3>
 
 <p><strong>One service, three protocols.</strong> Axis2 is the only Java 
framework
 that serves JSON-RPC, REST+OpenAPI, and

Reply via email to