Relax ancestor ACL requirement for runtime dir (fixes #1621) - #1622
Relax ancestor ACL requirement for runtime dir (fixes #1621)#1622Carnival-z wants to merge 1 commit into
Conversation
Refactor posix_directory_parent_secure function to improve ACL handling for macOS.
|
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. |
|
Thank you for filing this and for taking a run at the fix — and sorry for the delay in replying. The problem you reported is fixed, from two directions, both shipping in v0.10.5 today:
On this patch specifically, one thing to flag kindly so it isn't a mystery: as it stands it doesn't compile — removing the ACL call left the The direction it took also isn't one we can merge as-is: relaxing the requirement for the runtime directory itself would weaken a boundary that protects the coordination endpoint. Genuinely, thank you. Your report is a large part of why the escape hatch exists at all, and the wrong-directory message would probably still be misleading people without it. |
|
Closing — the problem you reported is fixed from two directions in v0.10.5: #1645 adds |
Summary: Allow ancestors (like /private/tmp on macOS) that carry allow-type ACLs so the daemon can create per-user runtime directories (/private/tmp/cbm-daemon-). The final runtime directory is still hardened: owner == current user, chmod 0700, and extended ACLs cleared.
Security: Only ancestor observation rules were relaxed for compatibility. Final runtime dir hardening (0700 + ACL clear) remains unchanged.
Testing suggestions:
macOS: verify daemon can create /private/tmp/cbm-daemon- when /private/tmp carries allow-ACLs; verify runtime dir is 0700 and ACLs cleared.
Ensure socket/lock/log files remain 0600 and ACLs cleared.
Fixes: #1621