Skip to content

Pin core v1.36.4: a file's bytes no longer hold the extension host in a backtracking regex - #50

Merged
ww-mw merged 1 commit into
mainfrom
pin-core-v1.36.4
Oct 12, 2026
Merged

ww-mw merged 1 commit into
mainfrom
pin-core-v1.36.4

Conversation

@ww-mw

@ww-mw ww-mw commented Oct 12, 2026

Copy link
Copy Markdown
Member

Moves the core pin from v1.36.3 to v1.36.4 (fcf4b46). Four lines: the spec in package.json and in the lock's root entry, and the lock entry's version and resolved sha, the same shape as 58ecddb's pin of v1.36.3.

What core v1.36.4 brings to the extension:

Checked in a worktree of this branch:

  • npm ci from this lock installs data-explorer-core 1.36.4 and leaves the lock byte-identical (sha256 before and after).
  • npm run verify passes: typecheck, build, build:web, 3,128 unit tests in 164 files, and check:leak (all 646 lockfile resolutions on the public registry or the one allowed core git entry).
  • npm run test:integration passes: 168 passing, 1 pending.
  • The old regex is gone from the shipped bundles. A fixed-string search for it finds it once in each of dist/extension.js and dist/web/extension.js built from v1.36.3 (the positive control), and zero times in both built from this branch, which carry the new scanner instead.

The extension's own version is not bumped here; users get the fix with the next release built from this pin.

… a backtracking regex

Core v1.36.4 reads a binary dictionary's interface-dictionary part with a linear scanner
instead of a regex that was quadratic on the file's own bytes (core code-scanning alert 2):
a binary .sldd of about a kilobyte could hold the extension host for over ten seconds, on
open or from the tree view's scan, and one stray quote in a large part made the read throw.
Three more patterns that a file reaches, a decimal's digits in complex values and model
parameters and the cdata .0 drop, are linear too. A struct type named after an
Object.prototype member, such as toString, is classified as one, and a new entry's uuid
comes from crypto.getRandomValues in the same shape as before.

The lock now resolves data-explorer-core to v1.36.4 (fcf4b46). The lock diff is the spec,
the version and the resolved sha, and every lockfile resolution still points at the public
registry. Both shipped bundles, dist/extension.js and dist/web/extension.js, lose the old
regex. The extension's own version is not bumped here.
@ww-mw
ww-mw merged commit db85a76 into main Oct 12, 2026
4 checks passed
@ww-mw
ww-mw deleted the pin-core-v1.36.4 branch October 12, 2026 00:10
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.

1 participant