fix(threats): keep unrelated role prose in context files
Salvage the bounded target-slot design from #104617, using mandatory word separators to avoid ambiguous repeated matches. Preserve long payload detection and execution-verb boundaries. Replace the three candidate tests with two context-loader invariants and document the heuristic's limits. Fixes #104609 Co-authored-by: Konstantin Khlopkov <konstantin.khlopkov93@gmail.com>
This commit is contained in:
@@ -30,7 +30,11 @@ _PATTERNS: List[Tuple[str, str, str]] = [
|
||||
(rf'act\s+as\s+(if|though)\s+{_FILLER}you\s+{_FILLER}(have\s+no|don\'t\s+have)\s+{_FILLER}(restrictions|limits|rules)', "bypass_restrictions", "all"),
|
||||
(r'<!--[^>]{0,512}(?:ignore|override|system|secret|hidden)[^>]{0,512}-->', "html_comment_injection", "all"),
|
||||
(r'<\s*div\s+style\s*=\s*["\'][^>]{0,2048}display\s*:\s*none', "hidden_div", "all"),
|
||||
(r'translate\s+[^\n]{0,512}\s+into\s+[^\n]{0,512}\s+and\s+(execute|run|eval)', "translate_execute", "all"),
|
||||
(
|
||||
r"translate\s+[^\n]{0,512}\s+into\s+\w+(?:[\s-]+\w+){0,2}\s+and\s+(execute|run|eval)\b",
|
||||
"translate_execute",
|
||||
"all",
|
||||
),
|
||||
(rf'do\s+not\s+{_FILLER}tell\s+{_FILLER}the\s+user', "deception_hide", "all"),
|
||||
|
||||
# ── Role-play / identity hijack (scraped web content, poisoned context files) ──
|
||||
|
||||
Reference in New Issue
Block a user