Skip to content

fix: correct n8n semantic nodes for 6 entries - #77

Open
perhaps468 wants to merge 1 commit into
Tencent:mainfrom
perhaps468:feat/review-n8n-vuln-semantic-node
Open

fix: correct n8n semantic nodes for 6 entries#77
perhaps468 wants to merge 1 commit into
Tencent:mainfrom
perhaps468:feat/review-n8n-vuln-semantic-node

Conversation

@perhaps468

Copy link
Copy Markdown

概述

Closes #6
本 PR 针对Closes #6 的 6 条 n8n 相关样本进行人工辅助的链路重建。这些样本并非单点行号偏移,而是整条数据流或调用链的语义错位——节点能找到代码,但位置不在利用链上;或漏洞需要多阶段触发,单一入口点难以表达完整利用过程。

节点修复对照

entry_id 字段 修复前 修复后
entry-00099 critical_operation expression-sandboxing.ts:244 PrototypeSanitizer 函数定义 expression-evaluator-proxy.ts:9-12 Tournament evaluator 构造
entry-00100 critical_operation expression-sandboxing.ts:330-336 sanitizer 函数定义 expression-evaluator-proxy.ts:9-12 Tournament evaluator 构造
entry-00103 entry_point webhook-helpers.ts:615 代码块结束节点(无语义) webhook-helpers.ts:882-892 evaluateResponseHeaders 完整逻辑
entry-00103 critical_operation html-sandbox.ts:20 单个语句 html-sandbox.ts:16-21 isHtmlRenderedContentType 完整函数
entry-00176 critical_operation constants.py:126-135 BLOCKED_ATTRIBUTES 静态列表 task_analyzer.py:63-68 黑名单成员判断逻辑
entry-00511 entry_point expression.ts:485 data.extend 赋值 expression.ts:451-453 extendSyntax+renderExpression
entry-00512 entry_point expression.ts:524 renderExpression 方法定义 expression.ts:451-453 extendSyntax+renderExpression
entry-00512 critical_operation reset.ts:46 globalThis.__data.__sanitize 赋值 reset.ts:44-46 含注释的完整赋值

变更内容

文件 说明
data/entries.fixed.jsonl 修复后 JSONL 快照,408 行;6 条 target 已重建(与 data/entries.jsonl 等价)
data/entries.n8n_semantic_fixed.jsonl 6 条 target 的 patch 片段
reports/n8n_semantic_fix_notes.md 6 条 target 的逐条修复报告(原问题 / 修复位置 / 理由 / 未采用候选点)
reports/n8n_semantic_fix_diff.csv 字段级 before/after 记录,6 entry × 3 fields
scripts/apply_n8n_semantic_patches.py 幂等合并脚本(基线 + patch → fixed.jsonl)
scripts/validate_n8n_fix.py 本地 SCHEMA + 语义字段校验脚本

验收对照

validate_n8n_fix.py 一键验收脚本:行数守恒(408 entries / 184 reports)+ report_id join 一致 + SCHEMA.md 不变式 + 6 条 target 字段语义(verify=1 / ep≠co / 含 desc)+ critical_operation 模式匹配 + entry_point 外部输入关键词。

python scripts/validate_n8n_fix.py 全部 PASS:
image
image

…494/25049)

Refine entry_point, critical_operation, and trace for n8n workflow
expression sandbox escape, webhook XSS/CSP bypass, Python sandbox
escape, and VM expression engine sandbox escape entries.

Changes:
- entry-00099/00100: shift critical_operation from sanitizer function
  definitions to Tournament evaluator initialization (CVE-2026-1470)
- entry-00103: correct entry_point to webhook responseHeaders evaluation,
  fix critical_operation line range (CVE-2026-25051)
- entry-00176: point critical_operation to BLOCKED_ATTRIBUTES membership
  check instead of static list definition (CVE-2026-27494)
- entry-00511/00512: update entry_point to expression processing entry,
  clarify critical_operation in extend/reset modules (CVE-2026-25049)

All 6 entries now marked verify=1 after human review against advisory
and source code. Includes validation script and detailed fix notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
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