data: annotate config-class Dockerfile entries (GHSA-W7J5-J98M-W679) …#53
Open
Im-Asher wants to merge 1 commit into
Open
data: annotate config-class Dockerfile entries (GHSA-W7J5-J98M-W679) …#53Im-Asher wants to merge 1 commit into
Im-Asher wants to merge 1 commit into
Conversation
…and add annotation spec Fix entry-00241..00244 (OpenClaw E2E/test Dockerfiles running as root, CWE-250) by rewriting entry_point/critical_operation desc to explain the config root cause, and set verify=1 after manual audit. Add config_vuln_annotation.md with labeling principles for config-class / non-taint vulnerabilities, and changes.csv recording field-level changes. No SCHEMA.md changes; file/line/code and trace preserved verbatim.
Author
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.
问题是什么?
VulnGym 用
entry_point/critical_operation/trace表达漏洞路径,这套结构为污点流、调用链、权限绕过等"有输入传播链"的漏洞设计。而GHSA-W7J5-J98M-W679的 4 条 OpenClaw Dockerfile 样本属于配置状态漏洞(CWE-250 不必要特权)——进程以 root(uid=0)运行,无外部输入、无污点传播。当前标注虽然
file/line/code能匹配源码,但存在以下不适配:entry_point语义错位:标在FROM行,但desc沿用污点类话术("漏洞源头/起点"),暗示"运行时可达入口"——而配置类漏洞根本没有运行时入口。critical_operation.desc复述代码:如"以 root 运行",没有解释为什么这一行是漏洞关键节点。verify=0与人工备注矛盾:人工备注已确认是"纯配置文件、非污点类漏洞",但标注仍是自动标注未审计状态。entry_point.desc误用污点语义FROM引入默认 root 状态CMD以 root 启动critical_operation.desc复述代码FROM引入默认 root 状态RUN pnpm install固化未声明USER的镜像critical_operation.desc复述代码FROM引入默认 root 状态ENTRYPOINT以 root 启动FROM/ENTRYPOINT)FROM默认 root +sudoers架空降权ENTRYPOINT以被架空的app身份运行解决方案是什么?
制定配置类标注原则(写入
config_vuln_annotation.md)entry_point= 配置基线锚点(配置生效起点),非运行时入口;critical_operation= 漏洞兑现点(特权被具体兑现/利用处);trace= 配置声明 → 生效的传播链(传播"特权状态"而非"污点")。最小改动修复 4 条:仅重写
entry_point.desc与critical_operation.desc,把"复述代码"改为"解释根因"(如 entry-00244 说明USER app仅为形式降权,sudoers的NOPASSWD:ALL使其与 root 等价);并将verify由0置1(本次修复即人工审计)。file/line/code与trace逐字保留,保证仍能在 commit 中匹配。锚点选择:对前三个缺
USER的样本,以真实FROM作为默认状态锚点,不构造不存在的错误行;对 entry-00244,保留FROM锚点并在desc中点明sudoers NOPASSWD:ALL架空USER app降权,根因节点保留在trace(L18 sudoers、L20 USER app)。交付三件套
entries.fixed.jsonl:完整 408 行修复版(仅 4 条 3 个语义字段变化);config_vuln_annotation.md:配置类/非污点类漏洞标注规范;changes.csv:字段级变更对比。零破坏性:未引入任何
SCHEMA.md变更;已提交e962014。怎么证明有效?
c56fb7f,curl拉取 4 个 Dockerfile 按行号核对entry_point与critical_operation的file/line/code(含 entry-00244 的traceL18NOPASSWD:ALL、L20USER app)entry_point与critical_operation全部匹配84281abd对三个缺失USER文件的修改USER appuser(install-sh-e2e、e2e/Dockerfile、e2e/Dockerfile.qr-import);install-sh-nonroot未被改动,印证 entry-00244 根因在sudoers而非缺USERSCHEMA.md基础约束、行数与审核统计line≥1、无被禁内部字段、verify∈{0,1}data/entries.jsonl逐 entry、逐字段比较entry_point.desc、critical_operation.desc、verify三字段变化;file/line/code与trace逐字不变git diff --checkgit diff --check无输出)