fix(data): 修正 n8n 原型污染样本的漏洞快照与真实写入点#51
Open
Qiyuanqiii wants to merge 1 commit into
Open
Conversation
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.
背景与去重
复核 #6 及现有 PR 后发现,目前提交主要覆盖题目列出的 6 条优先样本。本 PR 选择尚未被触及的
GHSA-MXRG-77HM-89HV,修正其中:entry-00359entry-00360entry-00361发现的问题
三条记录原本统一绑定到
732f2a3,但该提交虽然仍在 GSuiteAdmin 修复之前,却已经包含更早合入的 XML dangerous-key 防护,因此只能复现部分漏洞路径,不能作为三条记录共同的漏洞快照。此外:
entry-00359/00360的 critical operation 只覆盖了customSchemas[schemaName] ??= {}。schemaName === "__proto__"时,该表达式会取得继承的Object.prototype,由于结果非 nullish,??=本身不会执行初始化。[fieldName] = value,原记录没有覆盖这个实际写入点。entry-00361把dataPropertyName选作入口,但攻击者控制的危险键来自 XML parser 的attrkey/charkeyoptions。let item声明,未消费恶意输入,也不是安全影响发生点。修复方案
f7c3684。ba687da的直接父提交,同时位于 GSuiteAdmin 修复2d9a2ec之前。options -> parserOptions -> Parser -> parseStringPromise数据流。verify=0,等待维护者重新审核。验证结果
f7c3684比原快照早 446 commitsgit diff --check通过复现命令
验证截图
Related to #6