Skip to content

Rebuild n8n sandbox escape semantic annotations#46

Open
March-77 wants to merge 1 commit into
Tencent:mainfrom
March-77:codex/issue-6-n8n-semantics
Open

Rebuild n8n sandbox escape semantic annotations#46
March-77 wants to merge 1 commit into
Tencent:mainfrom
March-77:codex/issue-6-n8n-semantics

Conversation

@March-77

Copy link
Copy Markdown

Summary

  • independently rebuild the six n8n semantic annotations requested by issue 【2026犀牛鸟】修正 n8n 沙箱逃逸样本的入口点和关键操作语义 #6
  • move sources to workflow-controlled expression, header, and Python code inputs
  • move critical operations from decorators/static declarations/intermediate lookup to evaluator execution, AST bypass, CSP decision, Python exec, native .apply, and writable sanitizer state
  • retain only source-backed propagation/control-flow nodes
  • include a reproducible source-slicing builder, six-entry patch JSONL, field diff, rationale report, and tests

Evidence

The analysis uses each entry's pinned vulnerable commit plus the corresponding security-fix behavior:

  • reserved-variable and WithStatement guards for the Tournament expression escape
  • Content-Type trimming for the CSP bypass
  • __objclass__ denylisting for the Python runner escape
  • unsafe extension-name rejection and immutable __sanitize for VM escapes

All six rows remain verify=0 for maintainer confirmation.

Validation

  • 6 patch rows and 18 field-level diff rows
  • 40/40 replacement nodes exactly match their pinned source file, line range, and code
  • python -m unittest discover -s tests -p "test_n8n_semantic_fixes.py" -v (4 tests)
  • python -m py_compile scripts/build_n8n_semantic_fixes.py
  • git diff --check

Closes #6

@March-77
March-77 marked this pull request as ready for review July 14, 2026 16:18
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.

【2026犀牛鸟】修正 n8n 沙箱逃逸样本的入口点和关键操作语义

1 participant