Skip to content

feat: industrial schema validation and adversarial payload hardening (#10) - #14

Merged
nth-bailey merged 1 commit into
mainfrom
feat/industrial-corpus
Oct 12, 2026
Merged

nth-bailey merged 1 commit into
mainfrom
feat/industrial-corpus

Conversation

@nth-bailey

Copy link
Copy Markdown
Contributor

Closes #10.

Overview

Validates SafeXML against a diverse corpus of real-world industrial XML schemas and instance documents, and hardens against adversarial payload injection into enterprise protocols (SAML 2.0 and AS4 ebMS3).

Key Highlights

  • Real-World Schema Validation:
    • Ingested and parsed 596 production schemas from polyxml-schema-corpus across domains:
      • Identity & Security: SAML 2.0 (saml-schema-protocol-2.0.xsd, saml-schema-assertion-2.0.xsd)
      • Enterprise Messaging: AS4 ebMS3 (ebms-header-3_0-200704.xsd)
      • Financial Services: FpML 5.12 (fpml-main-5-12.xsd), ISO 20022 (pacs.008.001.10.xsd, camt.054.001.10.xsd)
      • Healthcare: HL7 FHIR R4 (fhir-single.xsd, 2.60 MB)
      • Defense & Aviation: NATO UCI 2.5 (UCI_MessageDefinitions_v2_5_0.xsd, 8.09 MB), FIXM 4.0
      • Logistics & Transportation: UBL 2.1 (UBL-CommonAggregateComponents-2.1.xsd, 2.36 MB), railML 2.4, NeTEx, SIRI
    • Achieved 100% DOM equivalence with standard library xml.etree.ElementTree.
  • Adversarial Hardening:
    • SAML 2.0 assertion injection: XXE, Billion Laughs, quadratic blowup, attribute flood, and deep nesting recursion.
    • AS4 ebMS3 SOAP envelope injection: parameter entity injection, DTD proscription, and giant tag name bombs.
  • Throughput & Concurrency Benchmark:
    • Measures parsing throughput (31–43 MB/s on large enterprise schemas).
    • Demonstrates 1.4x–1.66x multi-threaded throughput advantage over defusedxml under Python thread pools by releasing the GIL in Rust.
  • Documentation:
    • Published docs/INDUSTRIAL_VALIDATION.md detailing methodology, findings, and performance.
  • Code Coverage:
    • Enforced 100.00% statement and branch coverage.

@nth-bailey
nth-bailey merged commit 7ef8f7a into main Oct 12, 2026
5 checks passed
@nth-bailey
nth-bailey deleted the feat/industrial-corpus branch October 12, 2026 01:04
github-actions Bot pushed a commit that referenced this pull request Oct 12, 2026
# [1.1.0](v1.0.2...v1.1.0) (2026-10-12)

### Bug Fixes

* **ci:** make differential fuzz runner stdout ascii-safe for Windows console ([7a9e41f](7a9e41f))
* **ci:** make Rust extension import optional in common/init and build in rust-check job ([cf9553c](cf9553c))
* **test:** bundle industrial XML instance payloads for cross-platform CI runner parity ([707808f](707808f))

### Features

* **ci,docs:** add banner, CI for Python 3.14/3.15, OSV metadata, and decouple compatibility tests ([89f508d](89f508d))
* **dropin:** add minidom and sax drop-in modules, XML 1.0 attribute normalization, hypothesis testing, and libFuzzer target ([46689bf](46689bf))
* industrial schema validation and adversarial payload hardening ([#10](#10)) ([#14](#14)) ([7ef8f7a](7ef8f7a))
* **security:** add max_input_size and max_elements defenses, modularize PyO3 feature, and clean issue references ([023a650](023a650))
* **security:** harden XML parser against audit findings A1-A12 and fix stdlib parity ([#7](#7)) ([7d68839](7d68839))
* **test:** add automated differential fuzzing against stdlib and defusedxml ([#8](#8)) ([#12](#12)) ([ed7c40a](ed7c40a))
* W3C XML conformance manifest runner and parser compliance ([#9](#9)) ([#13](#13)) ([47cea2a](47cea2a))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: Industrial schema validation using polyxml-schema-corpus (SAML, AS4, Finance, Defense)

1 participant