Trail of Bits introduces SequenceHash and SequenceMAC, hash-agnostic constructions for safely combining variable-length inputs without ambiguity or length-extension vulnerabilities. The post explains their encoding, domain-separation, keyed mode, implementation APIs, security trade-offs, and available Rust, Go, and Python implementations.
Trail of Bits engineering blog
The post examines how trusted execution environments interact with multi-party computation and threshold signatures, highlighting trust-model clashes, attestation gaps, rollback attacks, side channels, and centralization risks. It provides concrete deployment guidance, including binding attestations to MPC identities, verifying measurements, using constant-time code, and diversifying TEE vendors.
The post examines why SAML’s XML foundation, canonicalization, enveloped signatures, kitchen-sink design, and ossification create persistent security and implementation problems. It recommends migrating authentication providers and service providers toward OIDC, with practical guidance for planning SAML deprecation.
The post details how Trail of Bits used AI agents to build an LSP server, decompiler, static-analysis engine, and Lean model while auditing the Miden zero-knowledge VM. These tools uncovered hundreds of validation weaknesses, a signature-forging vulnerability, and subtle arithmetic bugs, while producing 95 machine-checked correctness proofs.
Trail of Bits analyzes why 1Password’s AI patching benchmark produces a misleading headline, citing biased sampling, restricted testing, and unreliable grading. It compares human and agent patch quality and introduces validation and review skills for detecting incomplete fixes, regressions, and new vulnerabilities.
Trail of Bits analyzes a Lean bug in String.Pos.Raw.extract that caused logical and native evaluation to disagree, allowing a contradictory “proof” of Fermat’s Last Theorem. The post explains the failure mode, remediation, and why native evaluation expands the trusted computing base for machine-checked proofs.
The post demonstrates how a cyber-capable AI agent escaped a QEMU/KVM virtual machine through chained Linux KVM, QEMU, and libslirp vulnerabilities, including undisclosed flaws. It explains why conventional VM isolation is insufficient and recommends minimizing attack surfaces, applying upstream security updates rapidly, using hardened virtualization such as Firecracker, and enforcing least privilege and monitoring.
Trail of Bits analyzes a Provenance Blockchain authorization bypass caused by stale token-supply state, allowing attackers to self-grant marker administration and mint or withdraw assets. It explains the impact across 82 markers, the two-stage fix, and testing principles for preventing zero-state authorization failures.
Trail of Bits explains how Signal’s Automatic Key Verification uses key transparency, Merkle trees, and independent auditors to detect malicious or inconsistent public-key mappings. The post details the auditor’s signing model, its seven-day detection window, and how users can enable the feature.
The post analyzes security and operational risks in integrating AWS Nitro Enclaves with KMS, covering attestation, passive and active attacks, key substitution, replay, policy design, TLS, and key lifecycle management. It provides practical checklists and mitigations for building and auditing enclave-based systems.
The post analyzes seven recurring security failures in Uniswap v4 hooks, including missing authorization, malicious pool routing, faulty accounting, permission-bit mismatches, callback reentrancy, and denial-of-service risks. It provides concrete development and auditing guidance, including invariants, allowlists, safe callback patterns, and adversarial testing strategies.
Trail of Bits explains how it uses Codex’s /goal mode to discover vulnerabilities in heavily audited open-source projects. The post presents practical techniques for writing precise success criteria, separating competing objectives across agents, validating findings, and applying human security review.
Trail of Bits introduces a comprehensive Rust security-testing handbook chapter covering dynamic analysis with Miri and proptest, coverage and mutation testing, Clippy, manual-review footguns, memory zeroization, model checking, and dependency supply-chain vetting. It also highlights an automated Rust security-review plugin and practical techniques for finding subtle vulnerabilities.
Trail of Bits explains how Mewt brings mutation testing to DAML, exposing gaps that traditional coverage reports miss. It details DAML-specific controller mutations, surviving-mutant analysis, setup with dpm, and practical limits such as equivalent mutants and campaign cost.
Trail of Bits reports how GPT-5.5-Cyber built a bespoke zlib fuzzing campaign in one day, combining sanitizer builds, seed corpora, variant configurations, and harnesses across a dozen entry points. The report highlights the importance of validating real-world reachability and filtering noisy findings.
Trail of Bits details how ML-KEM and ML-DSA were added to pyca/cryptography, making post-quantum primitives available across Python. The post explains API usage, size and performance trade-offs, and why protocol wire formats require careful migration work.
Trail of Bits describes Patch the Planet, an initiative using frontier AI models with security engineers to find and fix vulnerabilities across critical open-source projects. The post highlights fuzzing, CVE variant analysis, differential testing, coordinated disclosure, and maintainer guidance for triaging AI-generated findings.
The researchers uncover weak RSA and DSA keys caused by a CompleteFTP big-integer implementation bug. They show how structured zero bits enable polynomial-based factorization, identify affected software versions, and use internet-wide scans to measure the vulnerability’s impact.
Trail of Bits evaluates security scanners for agent skills and demonstrates practical bypasses involving truncated files, embedded archives, poisoned Python bytecode, opaque binaries, and prompt injection. The analysis explains why static and LLM-based scanning is insufficient and recommends curated sources, pinned dependencies, and treating public skill marketplaces as untrusted code.
Trail of Bits details how zizmor gained full YAML anchor support for GitHub Actions, fixing parsing, deserialization, and expression-evaluation bugs. The team validated the changes against 41,253 real-world workflows, demonstrating a practical corpus-driven method for hardening static analyzers.