Skip to content

v0.1.6: fix 1 Astra P1 findings (2026-10-22 wave) - #7

Merged
puretensor merged 1 commit into
mainfrom
fix/astra-p1-20261022
Oct 22, 2026
Merged

puretensor merged 1 commit into
mainfrom
fix/astra-p1-20261022

Conversation

@puretensor

Copy link
Copy Markdown
Owner

Finding 1 (tools.py:159 ancestor symlink swap): FIXED. Real TOCTOU: O_NOFOLLOW covers only the final component. New indexer.open_resolved() walks from / with dir_fd + O_NOFOLLOW at every component; used by tools._read_note and indexer._read_note. Test: tests/test_tools.py::test_get_rejects_ancestor_directory_swapped_after_validation (fails on base with the canary served, passes on branch).

Full suite (fox-n1, py3.12 venv): 607 passed, 18 skipped, 3 failed (test_ctrl_c_* SIGINT tests; identical 3 failures on unmodified base when run under Ray, environmental).

🤖 Generated with Claude Code

https://claude.ai/code/session_01YK9RAF9uX37A3hDZqR7ppw

…o-symlink directory chain

An ancestor directory swapped for a symlink after is_indexable() could redirect
the open outside the vault; O_NOFOLLOW covers only the last component.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@puretensor
puretensor merged commit 981150b into main Oct 22, 2026
14 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