Security Review Packet

Copy Markdown View Source

Generated from checked-in reviewer docs plus executable artifacts in this repository.

Scope

Relyra owns the SAML trust boundary inside the library: XML parsing, signed-content trust, protocol validation, RelayState handling, metadata trust anchors and refresh, certificate lifecycle, Single Logout, audit/redaction, and the library-owned Phoenix/admin seams.

The authoritative trust-boundary map and host-app exclusions live in docs/security_boundary.md.

Reviewer Assumptions

  • Host-application authn/authz policy remains outside the library boundary.
  • Generic Phoenix router/session policy is only in scope where Relyra defines the contract.
  • Reviewer findings and dispositions are tracked in docs/security_findings.md. No external findings are recorded yet.

Rerun

Run these commands from the repo root:

mix ci.security
mix ci.verify
mix relyra.conformance --check
mix relyra.security_review --check
mix test test/security/strict_default_proof_test.exs --warnings-as-errors
mix test test/relyra/ecto/escape_hatch_audit_test.exs --warnings-as-errors

Linked Artifacts

ArtifactPurpose
SECURITY.mdPublic threat model, supported algorithms, disclosure workflow, and release prerequisites.
CONFORMANCE.mdGenerated conformance and pinned CVE-regression evidence.
SECURITY_REVIEW_EVIDENCE.mdGenerated strict-default and escape-hatch evidence derived from executable security state.
docs/security_boundary.mdReviewer scope, trust seams, and explicit host-app exclusions.
docs/security_findings.mdCurrent Findings Ledger and remediation disposition workflow.

Named Code Seams

Claim surfacePrimary seamProof lane
SHA-256+ strict defaults and time-boxed SHA-1 compatibilitylib/relyra/security/algorithm_policy.extest/security/strict_default_proof_test.exs
Document-provided KeyInfo and signed-node trust rejectionlib/relyra/security/signature.ex, lib/relyra/security/xml/pure_beam.extest/security/strict_default_proof_test.exs
RelayState opacity and raw-URL rejectionlib/relyra/security/relay_state.extest/security/strict_default_proof_test.exs
Metadata trust anchors, drift review, and legacy unsigned escape hatchlib/relyra/metadata/auto_refresh.extest/relyra/ecto/escape_hatch_audit_test.exs
Attributable, redaction-safe audit evidencelib/relyra/ecto/audit_writer.extest/relyra/ecto/escape_hatch_audit_test.exs
Redacted reviewer export bundlelib/relyra/diagnostic/allow_list.ex, lib/relyra/diagnostic.extest/relyra/ecto/escape_hatch_audit_test.exs

Findings Ledger

The current Findings Ledger is docs/security_findings.md. It starts in a zero-findings state and becomes the checked-in source for external audit dispositions once findings exist.