In March 2023, security vendors detected that 3CX's desktop phone application — used by 600,000 companies and 12 million daily users — was distributing malware. The software was digitally signed with a valid certificate. Every integrity check passed. The malicious code was embedded in the legitimate build by attackers who had compromised 3CX's build servers. But that compromise started somewhere else: a single employee had downloaded a tampered financial trading application, X_TRADER, months earlier. It was the first documented case of one supply chain attack causing another — a cascading integrity failure.
3CX had code signing. They had a build pipeline. The software was signed with a valid certificate. What was the integrity failure?
A CI/CD pipeline configuration. Artifacts are built, signed, and deployed. One step trusts its input without verification. Click the line.
Five systems. Each one trusted the previous without independent verification. Click any node to see how the integrity failure propagated.
Integrity isn't one check — it's verification at every trust boundary. The build environment, the artifacts, the distribution, the client-side verification.
Add SRI to CDN scripts. Verify checksums before deployment. Never assume a valid signature means the content is safe — verify what went in, not just who signed it.
Your web application loads a JavaScript analytics library from a third-party CDN. How do you verify its integrity?
What makes A08 (Integrity Failures) different from A03 (Supply Chain Failures)?
A Java application deserializes user-provided data using ObjectInputStream. What's the primary risk?
A valid signature proves the signer signed it. It doesn't prove the signer wasn't compromised. Integrity requires verification at every trust boundary — not just at the front door.
A08 · Software or Data Integrity Failuresintegrity attributes (SRI hashes) to all CDN-loaded scripts. Never deserialize untrusted data with native serializers (Java ObjectInputStream, Python pickle) — use allowlists or prefer JSON/protobuf. Validate all external data before processing. For platform teams: Verify checksums of Docker images before deployment. Sign build artifacts and verify signatures before distribution. Implement build isolation and provenance attestation. Both sides own integrity.Five things you can verify right now.