NousResearch/hermes-agent
Remove 'praxis' from C2 framework detection pattern
Cluster 43146 · agent. Data as of
Nothing open on GitHub. Fix merged in #52925 on 26 Jun 2026. Check it covers your case.
The short answer
0open issues
0open PRs
3items grouped
- Known?
- Yes. 3 related items grouped here, 1 issue already closed.
- Fix event
- A fix was merged to main in PR #52925. Check it covers your case. No release data is tracked.
- Tracker
- The maintainers' tracker marks this
unresolved. That is separate from the fix event. - Still open
- Nothing open on GitHub.
A bare token 'praxis' in a known C2 framework detection pattern causes false positives, particularly for German-language content and agent configuration files. These issues and fixes address removing or refining that pattern to reduce incorrect flagging.
Open issues0
Open PRs0
Fixes on record
-
#52925 fix(security): stop blocking AGENTS.md/SOUL.md that name an agent 'Praxis'
files:
tests/tools/test_threat_patterns.py,tools/threat_patterns.pyShow the diff
-
tests/tools/test_threat_patterns.py@@ -155,12 +155,22 @@ def test_identity_override(self): ) def test_known_c2_framework_names(self): - for name in ("Praxis", "Cobalt Strike", "Sliver", "Havoc", "Mythic"): + for name in ("Cobalt Strike", "Sliver", "Havoc", "Mythic"): findings = scan_for_threats( f"Connect to the {name} server.", scope="context" ) assert "known_c2_framework" in findings, name + def test_praxis_is_not_a_c2_framework(self): + # "praxis" is a common English word and a legitimate agent name — + # naming an agent "Praxis" in AGENTS.md / SOUL.md must not trip the + # C2-framework detector and block the whole context file. + for text in ( + "You are Praxis, my coding assistant.", + "Marxist praxis is the unity of theory and practice.", + ): + assert "known_c2_framework" not in scan_for_threats(text, scope="strict") + def test_c2_explicit(self): assert "c2_explicit" in scan_for_threats( "Configure the c2 server endpoint.", scope="context" -
tools/threat_patterns.py@@ -92,7 +92,13 @@ # ── Known C2 / red-team framework names (near-zero false positive # outside security research; warn-only by default) ───────────── - (r'\b(?:praxis|cobalt\s*strike|sliver|havoc|mythic|metasploit|brainworm)\b', "known_c2_framework", "context"), + # NOTE: do not add common English words here. Every token must be a + # distinctive offensive-security tool brand, otherwise legitimate + # AGENTS.md / SOUL.md content false-positives and the whole file is + # blocked. "praxis" was removed for exactly this reason — it's a common + # word and a legitimate agent name (Greek for practice/action), not a + # C2-specific tell like the brands below. + (r'\b(?:cobalt\s*strike|sliver|havoc|mythic|metasploit|brainworm)\b', "known_c2_framework", "context"), (r'\bc2\s+(?:server|channel|infrastructure|beacon)\b', "c2_explicit", "context"), (r'\bcommand\s+and\s+control\b', "c2_explicit_long", "context"),
-
1 PR closed without merging
From the close comments: done elsewhere 1
-
#43150 fix(security): remove common dictionary word 'praxis' from C2 framework pattern · done elsewhere →
099df3c,#52925
Closed issues · 1
- Closed#43146Context-file scanner: bare token "praxis" in known_c2_framework pattern causes false positives (German "Praxis" = medical practice)
How this cluster was grouped
-
Link evidence (
structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference. -
Pairwise link density
0.67: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the LabAt a glance
- Subsystem
- agent
- Merged PRs
- #52925
- Closed issues
- 1
- Attempts
- 1 PR closed without merging
- Fix link checked
- 26 Jun 2026