See SECURITY.md for the full threat model, including:
SAML2Utils.getSAML2KeyInfo() creates a DocumentBuilderFactory without visible XXE hardening flags. Verify that OpenSAML's AxiomParserPool (configured in AxiomParserPool.java) enforces XXE protections, and that no code path bypasses it.
Key files:
modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAML2Utils.javamodules/rampart-trust/src/main/java/org/apache/rahas/impl/util/AxiomParserPool.javaRampart relies on WSS4J 4.0.1 for signature reference validation. Verify that Rampart's preprocessing in Axis2Util.getDocumentFromSOAPEnvelope() (which converts Axiom to DOM and normalizes namespaces) does not create opportunities for signature wrapping attacks.
Key files:
modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.javamodules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.javamodules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.javaRampartUtil.validateTransport() trusts the servlet container's isSecure() flag and X.509 certificate attribute. A container misconfiguration (e.g., reverse proxy not setting the secure flag) could bypass client certificate authentication entirely.
Key files:
modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java (line ~1890)Scan for code paths where weak algorithms (3DES, SHA-1 for signing, RSA-OAEP with MGF1-SHA1) are accepted by default without explicit policy opt-in. Check algorithm suite resolution in binding builders.
Key files:
modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.javamodules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.javamodules/rampart-core/src/main/java/org/apache/rampart/builder/SymmetricBindingBuilder.javamodules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AlgorithmSuite.javaRampartUsernameTokenValidator overrides WSS4J's default plaintext password verification. Verify the override does not weaken validation. Also check that password callback handlers do not leak credentials through logging or error messages.
Key files:
modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartUsernameTokenValidator.javamodules/rampart-core/src/main/java/org/apache/rampart/handler/CertificateValidator.javamodules/
rampart-core/ Core WS-Security processing: handlers, engine,
binding builders, policy validation
rampart-policy/ WS-SecurityPolicy assertion builders and models
rampart-trust/ WS-Trust STS: SAML token issuance, validation,
SecureConversation token management
rampart-mar/ Axis2 module archive packaging (rampart.mar)
rampart-trust-mar/ STS module archive packaging (rahas.mar)
rampart-integration/ End-to-end integration tests (SAML, Kerberos, X.509)
rampart-tests/ Unit tests
rampart-samples/ 9 policy sample configurations
Integration tests cover SAML 1.1/2.0 (bearer, holder-of-key), UsernameToken, X.509 certificate, and Kerberos token scenarios. No fuzz testing infrastructure exists for Rampart.
Security vulnerabilities: security@apache.org