fix(cli): handle trusted Linux system aliases during install activation - #2203
Conversation
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
Signed-off-by: DavidHLP <144919470+DavidHLP@users.noreply.github.com>
848ce77 to
00411ce
Compare
Verification updateI rebuilt the patched Results:
The reported direct-command exit-code discrepancy is not reproducible with this binary: the rejected user-owned-symlink case returns The PR workflow still has one underlying failing job, |
Signed-off-by: DavidHLP <lysf15520112973@163.com>
|
Follow-up for commit The alias list is now Linux-only for I rebuilt this new head in Docker and reran the issue matrix:
The Linux fix remains minimal and the existing |
Signed-off-by: DavidHLP <lysf15520112973@163.com>
|
Please get this merged. Right now you can't install codebase-memory on Ubuntu 26.04 to name just one because of this. |
|
Thank you for the Linux alias fix and the platform matrix. Current activation handling still makes this a real compatibility gap, but the trust-boundary details need more review. We need more time to review before giving an integration decision; this is not a request for speculative rebases or broader permission exemptions. |
|
Thanks for the clarification. Understood. I’ve kept the change limited to the explicit Linux aliases and left the existing rejection of arbitrary user-owned symlinks unchanged. I won’t make speculative rebases or broaden permission exemptions. I also tightened the PR description to state the current scope, validation, and remaining limits clearly. I’ll wait for the trust-boundary review. |
|
Approved. The trust-boundary question that was holding this has been settled, and I want to record the reasoning rather than just flipping a switch. The gate here is narrow in three independent ways, and all three have to hold before anything is resolved:
That last point is what makes the extension sound: an attacker who can plant a root-owned symlink at I also appreciate that you narrowed rather than broadened when asked. Your 2026-09-20 note — keeping the change to explicit Linux aliases, leaving the rejection of arbitrary user-owned symlinks untouched, and declining to make speculative rebases — is the right instinct on a security-adjacent path. Splitting the @JohnGalt1717 — thank you for the nudge; you were right that this is a real compatibility gap rather than an edge case. On timing: |
|
Merged — |
Summary
Fix Linux install staging when the target path is reached through a root-owned system alias.
activation_posix_walk_path()now resolves only the explicit Linux aliases/tmp,/var, and/homewhen they are root-owned symlinks. Arbitrary user-owned symlinks remain rejected, and macOS keeps its existing/tmpand/varhandling.Why
On Linux layouts such as Atomic-style
/home -> /var/home, and in the reproducer/tmp -> /tmp-real, the secure path walk rejected a system-managed alias before the install candidate could be staged. The command then reported:Validation
activation_transaction,cli: 338 passed in the Ubuntu 24.04 Docker test image.git diff --check: passed./tmpalias: both missing-target and existing-target cases succeeded./home -> /var/home: succeeded.Review scope
0was not reproduced; the controlled rejected-symlink case returned1.Fixes #2175