Skip to content

docs: Expand notes on concurrent mutations and following symlinks#453

Merged
cgwalters merged 2 commits into
composefs:mainfrom
cgwalters:document-more-symfollow
May 18, 2026
Merged

docs: Expand notes on concurrent mutations and following symlinks#453
cgwalters merged 2 commits into
composefs:mainfrom
cgwalters:document-more-symfollow

Conversation

@cgwalters
Copy link
Copy Markdown
Collaborator

No description provided.

cgwalters added 2 commits May 18, 2026 12:33
The default of follow_symlinks(true) was in retrospect a mistake,
but one hard to fix now (without a semver bump, which we'll
do at some point).k

This was reported as a private security issue by @thesmartshadow
but we cannot change things for compatibility reasons here - any
security issues related to this must be reported against projects *using*
tar-rs.

Assisted-by: OpenCode (Claude Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
Adds a crate-level `# Security` section to `lib.rs` that draws a clear
boundary: path traversal and symlink validation within the archive are
in scope; concurrent mutation of the destination tree by another process
(e.g. atomically swapping a symlink to redirect writes out of `dst`) is
explicitly outside the threat model without something like `cap-std`.

Per-function Security sections on `Archive::unpack`, `Entry::unpack_in`,
and `Entry::unpack` are collapsed to pointers to the canonical crate-level
doc, avoiding duplication.

Assisted-by: OpenCode (claude-sonnet-4-6@default)
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters cgwalters merged commit cd94c46 into composefs:main May 18, 2026
12 checks passed
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