Skip to content

The taboo guard resolves relative and Unicode-folded edit targets - #64

Merged
wintermeyer merged 2 commits into
mainfrom
guard-file-mode-spellings
Oct 11, 2026
Merged

wintermeyer merged 2 commits into
mainfrom
guard-file-mode-spellings

Conversation

@wintermeyer

Copy link
Copy Markdown
Owner

A review of #63 found two spellings of a protected path that the guard's file mode let through.

A relative target was matched as written, so sshd_config written from inside /etc/ssh passed. It is now resolved against the cwd the hook input carries. On macOS, APFS folds the long s and the Kelvin sign onto s and k, and HFS+ ignores zero-width characters, so the target is also matched with those two mapped and every other non-ASCII byte removed. Without jq a relative target is denied, because nothing can resolve it.

Bumps to 2.29.1.

An AI agent wrote this text in my name. I know that is problematic.

A review of 2.29.0 found two spellings the file mode missed. A relative
target was matched as written, so a bare sshd_config from inside
/etc/ssh passed; it is now resolved against the cwd the hook input
carries. APFS folds the long s and the Kelvin sign onto ASCII letters
and HFS+ ignores zero-width characters, so the target is also matched
with those mapped and all other non-ASCII bytes removed. Without jq a
relative target is denied, because nothing can resolve it.

An AI agent wrote this text in my name. I know that is problematic.
Ships two fixes to the guard's file mode from #64. A patch release because the mode keeps its meaning: it denies the same three targets, now also under a relative path and under a Unicode spelling that macOS folds onto the protected name.

An AI agent wrote this text in my name. I know that is problematic.
@wintermeyer
wintermeyer merged commit d1496b8 into main Oct 11, 2026
2 checks passed
@wintermeyer
wintermeyer deleted the guard-file-mode-spellings branch October 11, 2026 07:42
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