Skip to content

fleet v3: identifier allowlist on /logs/<svc> and /jobs/<id> - #74

Open
zemo-g wants to merge 1 commit into
masterfrom
security/fleet-v3-logs-ident
Open

zemo-g wants to merge 1 commit into
masterfrom
security/fleet-v3-logs-ident

Conversation

@zemo-g

@zemo-g zemo-g commented Sep 14, 2026

Copy link
Copy Markdown
Owner

handle_logs and handle_job_get put a URL segment straight into a shell string. With the fleet token that was a whitelist bypass for /exec: a build of master answers /logs/x;id with 200 and runs the tail loop on it. tools/fleet/check_ident.sh drives a live agent with raw metacharacters: 8 of 11 checks fail on master's build, 0 on this branch.

safe_ident allows [A-Za-z0-9_.-], refuses empty, over 64 chars and .., using only the primitives the agent already links (the stdlib string module is not part of the agent build). Suite 203/203.

The 2026-08-28 binaries on the three Macs already refused these, from a source that is not on master; the fixed build is being deployed so source and binary agree.

🤖 Generated with Claude Code

https://claude.ai/code/session_018TygXw4GBESE8yTUipXWf4

…hell injection, path traversal)

handle_logs and handle_job_get put a URL segment straight into a shell string.
With the fleet token that was a whitelist bypass for /exec: a build of master
answers /logs/x;id with 200 and runs the tail loop on it (8 of 11 checks in
tools/fleet/check_ident.sh fail on master, 0 on this build). safe_ident allows
[A-Za-z0-9_.-], refuses empty, over 64 chars and '..', with the primitives the
agent already links. The 2026-08-28 binaries deployed on the three Macs already
refused these, but from a source that is not on master; this makes the source
and the binary agree. Suite 203/203.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018TygXw4GBESE8yTUipXWf4
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