fix(security): add re.DOTALL to prevent multiline bypass of dangerous command detection - #233
Merged
teknium1 merged 1 commit intoMar 2, 2026
Conversation
… command detection
Contributor
|
Mind me asking what formatter does this project use? opencode is messing up the format making it much harder to track the actual changes. |
Contributor
|
Merged — thanks for the security fix! Added 2 extra find-pattern newline tests as a follow-up. |
Contributor
Contributor
Author
Thanks :) |
|
Verified complete during PRD audit 2026-04-19. All requirements implemented and tested — 12/12 pages serving full SPA with live API data. |
angelburgosrosado
pushed a commit
to angelburgosrosado/hermes-agent
that referenced
this pull request
Apr 27, 2026
…ltiline bypass of dangerous command detection Authored by Farukest. Fixes NousResearch#232.
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
…ltiline bypass of dangerous command detection Authored by Farukest. Fixes NousResearch#232.
teddyjfpender
added a commit
to teddyjfpender/superforecasting-agent
that referenced
this pull request
Jul 5, 2026
Task NousResearch#233. The root: the free-tier drain routed material-change alerts to run_autopilot, whose first line hard-raised without an active policy — but watched sources attach WITHOUT enabling autopilot (a deliberate per-question opt-in), so 130 alerts across 58 policy-less questions could never resolve. The policy governs materiality thresholds + auto-commit, NOT the deterministic re-check: an accidental hard dependency. Decision (a), blanket-seed rejected: run_autopilot(require_policy=False) degrades to a conservative zero-spend source re-check (audit row, no proposals, no fabricated autopilot_runs); the explicit forecast autopilot run path still raises loudly. Seeding default policies on 1000 watched sources vs 17 deliberate opt-ins would have switched on proposal-generation the operator never chose. LIVE REPAIR PROVEN: faithful-copy drain 130/130 resolved at 0 tokens; then live via the CLI, 130 -> 128 with real acks and no LedgerNotFoundError. The armed nightly self-check and operator R now drain the rest free. 4 new tests (red->green, fail-soft fold, explicit-path raises, policy-present unchanged); warnings+autopilot+cron+ledger suites 667. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
TestMultilineBypasstotests/tools/test_approval.pywith 4 tests:curl ... \\\n| shdetectedwget ... \\\n| bashdetecteddd \\\nif=...detectedchmod --recursive \\\n777detectedAll 4 fail without the fix, all 33 tests pass with it.
Closes #232