Garry Tan and Claude Fable 5
e86dcd6a22
fix(version-bump): version-path and package-json-path pins cannot escape the repository
...
.gstack/version-path and .gstack/package-json-path are repo-controlled
content. A cloned repo pinning '../../victim.json' — or an in-repo symlink
pointing outside — turned a routine bump into an arbitrary file overwrite
outside the repository. assertRepoContained rejects absolute paths, lexical
.. escapes, and symlink escapes (deepest existing ancestor realpath'd, so a
not-yet-created VERSION file is checked through its parent). Lockfiles that
are symlinks resolving outside the repo are skipped with a warning instead
of written through.
Six containment tests including the not-over-broad control (subdirectory
pins keep working).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-16 13:27:27 -07:00
..
2026-06-09 22:29:23 -07:00
2026-06-09 22:29:23 -07:00
2026-03-19 17:21:05 -07:00
2026-08-16 08:45:13 -07:00
2026-05-21 21:21:07 -07:00
2026-08-16 10:02:31 -07:00
2026-08-15 11:42:19 -07:00
2026-05-06 19:37:53 -07:00
2026-08-14 09:28:56 -07:00
2026-08-16 13:23:48 -07:00
2026-05-06 19:37:53 -07:00
2026-04-18 15:05:42 +08:00
2026-08-15 11:42:19 -07:00
2026-08-16 10:59:35 -07:00
2026-08-15 09:37:04 -07:00
2026-08-14 09:28:56 -07:00
2026-08-16 10:01:44 -07:00
2026-08-15 11:42:19 -07:00
2026-08-15 11:42:19 -07:00
2026-06-08 06:20:58 -07:00
2026-06-14 11:40:57 -07:00
2026-08-14 22:02:07 -07:00
2026-08-16 10:02:33 -07:00
2026-05-28 18:21:09 -07:00
2026-08-15 11:42:19 -07:00
2026-08-14 09:28:56 -07:00
2026-08-14 09:28:56 -07:00
2026-08-14 09:28:56 -07:00
2026-08-16 09:53:31 -07:00
2026-03-26 11:15:24 -06:00
2026-06-25 09:42:45 -07:00
2026-08-16 10:01:44 -07:00
2026-08-16 11:04:49 -07:00
2026-05-21 21:21:07 -07:00
2026-08-14 09:28:56 -07:00
2026-04-24 01:38:21 -07:00
2026-05-06 19:37:53 -07:00
2026-08-15 22:20:30 -07:00
2026-04-24 01:38:21 -07:00
2026-08-16 11:01:51 -07:00
2026-05-20 06:56:41 -07:00
2026-05-21 16:09:26 -07:00
2026-05-21 16:09:26 -07:00
2026-07-14 16:35:30 -07:00
2026-08-16 09:53:31 -07:00
2026-05-30 14:57:07 -07:00
2026-06-21 07:15:19 -07:00
2026-06-08 06:39:38 -07:00
2026-08-16 09:07:27 -07:00
2026-08-14 22:02:07 -07:00
2026-08-16 10:02:32 -07:00
2026-03-30 22:25:46 -06:00
2026-08-15 11:42:19 -07:00
2026-08-14 22:02:07 -07:00
2026-08-14 22:02:07 -07:00
2026-08-14 22:02:07 -07:00
2026-08-14 22:02:07 -07:00
2026-08-16 10:02:33 -07:00
2026-08-16 09:49:31 -07:00
2026-08-16 09:20:14 -07:00
2026-08-16 09:53:31 -07:00
2026-08-16 09:53:31 -07:00
2026-08-14 09:28:56 -07:00
2026-06-07 21:38:21 -07:00
2026-08-15 09:37:04 -07:00
2026-08-16 09:49:31 -07:00
2026-08-16 12:25:08 -07:00
2026-04-04 22:46:21 -07:00
2026-04-19 17:50:31 +08:00
2026-08-16 10:59:33 -07:00
2026-08-15 11:42:19 -07:00
2026-08-15 11:42:19 -07:00
2026-05-06 19:37:53 -07:00
2026-05-25 10:57:15 -07:00
2026-08-16 09:49:32 -07:00
2026-08-14 22:02:07 -07:00
2026-08-15 11:42:19 -07:00
2026-08-16 13:27:27 -07:00
2026-08-16 09:53:31 -07:00