agent-sanitizer 2.57.3 → 2.57.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/THREAT-MODEL.md +11 -3
  2. package/package.json +1 -1
package/THREAT-MODEL.md CHANGED
@@ -747,9 +747,17 @@ it, so what anchors its trust is worth stating exactly.
747
747
  substituted release asset alone therefore cannot be installed: it fails the
748
748
  comparison, is deleted, and the launcher keeps degrading loudly through node.
749
749
  - **What the digest is worth rests on the compile being reproducible.** The
750
- committed digests are generated from the committed bundle, and CI recompiles
751
- and byte-compares them (`build-hook-binaries.mjs --check`), so a manifest that
752
- does not describe the bundle in the same commit fails before release.
750
+ committed digests are generated from the committed bundle, and the release
751
+ recompiles and byte-compares them (`build-hook-binaries.mjs --check` in
752
+ `release-hook-binaries.sh`), so binaries that do not reproduce the manifest are
753
+ never uploaded. The manifest is refreshed on the default branch by
754
+ `auto-version.yaml`, ahead of that release, so what it describes is the bundle
755
+ the release ships.
756
+ - **A manifest that has fallen behind its bundle installs nothing.** Between a
757
+ merge and that refresh, the default branch pins binaries compiled from the
758
+ previous bundle. The provisioner compares its own bundle against the manifest's
759
+ `# bundle=` pin and refuses on a mismatch, so the window degrades to the node
760
+ path rather than running a binary that is not the code the install ships.
753
761
  - **Not covered: an attacker who can write BOTH the repository and the release.**
754
762
  There is no signature; the manifest is trusted because it arrives through the
755
763
  same reviewed, gated path as the rest of the plugin. Rewriting it is rewriting
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-sanitizer",
3
- "version": "2.57.3",
3
+ "version": "2.57.4",
4
4
  "description": "Defend an agent against hidden-content injection: strip payload-capable invisible Unicode and ANSI, splice out human-invisible HTML, and flag data-exfil URLs in untrusted text before any model sees it.",
5
5
  "type": "module",
6
6
  "repository": {