Skip to content

v2.0.1

Latest

Choose a tag to compare

@tstromberg tstromberg released this 10 Oct 08:05
· 23 commits to main since this release

Fixes

  • Read Mach-O code-signature blobs only from xnu-honoured slots, ignoring decoy entitlements.
  • Fail Authenticode signatures lacking an image digest, so grafted catalog signatures fail.
  • Take Authenticode timestamps from the signed TSTInfo, not a forgeable byte search.
  • Check nested PE signatures, and mark unrecomputable digests unverifiable, not intact.
  • Correct PE IMAGE_GUARD_* masks for delay-load IAT and export-suppression flags.
  • Use the last CRX3 header fields, as Chrome does, so decoys can't spoof extension IDs.
  • Refuse cache roots that are relative, symlinked or writable by other users.
  • Run rizin with an allowlisted environment, and parse its output separators strictly.
  • Catch panics in metrics, identity and reference derivation instead of aborting.
  • Escape control characters in CLI argument errors.
  • Pickle: model the stack and memo, fix LONG_BINGET length, cap operand amplification.
  • Budget ZIP open reads and PyTorch version reads, refusing EOCD floods and bombs.
  • Cap ELF name copies, verneed/verdef walks, DWARF attributes and overlapping note walks.
  • Clamp Mach-O nsyms, skip overlapping fat slices, and cap load-command record counts.
  • Keep goblin away from PE import/export tables over 32 MiB, and cap TLS and delay-import counts.
  • Limit Authenticode chain walks to 32 candidate issuers.
  • Add overflow checks to CAB, CLR, APK, Authenticode, VBA and code-signature parsing.
  • Cap member listings and path sizes in ISO, UDF, ASAR, RAR, 7z and CHM.
  • Cap APK signature blocks, JAR pom.properties reads and AXML/Java string copies.
  • Bound DMG reconstruction, font scanning, NIB archives and JPEG pixel decoding.
  • Cap OOXML .rels, PDF action sites, YAML alias replay and VBA decompression.
  • Read each repeated RPM header tag once, and cap Go buildinfo dependency records.
  • Count reference-evidence misses against the budget, fixing slow huge package-lock.json scans.

Features

  • Verify CRX2 and CRX3 developer signatures, reported as crx.signature_verified.
  • Report Authenticode unsigned_trailing_bytes for CVE-2013-3900-style padding.
  • Add a module_level flag to value-flow values evaluated at load time.
  • Identify Sphinx .doctree files as Pickle.
  • Add public tools::scrub_env to restrict spawned tools' environments.
  • Minimum Rust version raised from 1.94 to 1.97.

Optimizations

  • Resolve AST call chains once and layer flow scopes, removing quadratic slowdowns.
  • Reuse PDF endobj/endstream search positions instead of rescanning to EOF per object.
  • Index ELF section-in-segment checks, and parse each DWARF abbreviation table once.
  • Pre-index PE API-hash call edges, so a million edges now finish.
  • Replace linear dedup scans with hash sets in tar, ISO, OOXML, PKGBUILD and JS.
  • Serialize only the displayed rows in CLI text views, cutting memory on large files.