[jira] [Created] (AXIS2-6107) Remove vestigial context externalization code (SafeObjectInputStream and readExternal)
"Robert Lazarski (Jira)" <[email protected]> Mon, 1 Jun 2026 20:45:00 +0000 (UTC)
| Newsgroups | gmane.text.xml.axis.devel |
|---|---|
| Message-ID | <[email protected]> |
Robert Lazarski created AXIS2-6107:
--------------------------------------
Summary: Remove vestigial context externalization code (SafeObjectInputStream and readExternal)
Key: AXIS2-6107
URL: https://issues.apache.org/jira/browse/AXIS2-6107
Project: Axis2
Issue Type: Task
Reporter: Robert Lazarski
Assignee: Robert Lazarski
Fix For: 2.0.2
The SafeObjectInputStream, SafeObjectOutputStream, and the readExternal()/writeExternal() implementations across 13+
kernel classes were built for the clustering feature, which was removed in AXIS2-6097.
With clustering gone, no production code path feeds untrusted data into these readExternal() methods. The
externalization code is dead weight that:
- Increases attack surface (Java deserialization, even whitelisted, is a liability)
- Adds maintenance burden across core classes (MessageContext, OperationContext, ServiceContext,
ServiceGroupContext, SessionContext, Options, EndpointReference, RelatesTo, Parameter, ParameterIncludeImpl,
MetaDataEntry)
- Complicates security audits (the Glasswing scan will flag it)
Affected files (non-exhaustive):
- SafeObjectInputStream.java, SafeObjectOutputStream.java — delete entirely
- ObjectStateUtils.java — delete or gut
- MessageContext.java, OperationContext.java, ServiceContext.java, ServiceGroupContext.java, SessionContext.java —
remove readExternal()/writeExternal() and Externalizable interface
- Options.java, EndpointReference.java, RelatesTo.java — same
- Parameter.java, ParameterIncludeImpl.java, MetaDataEntry.java — same
- ObjectSave2Test.java — remove or update
This is similar in scope to AXIS2-6097 (clustering removal) — a large but mechanical change across many files.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)