Skip to content

docs(data): define configuration vulnerability annotations - #80

Open
Du-professor wants to merge 2 commits into
Tencent:mainfrom
Du-professor:fix/issue-8-config-vuln-annotation
Open

docs(data): define configuration vulnerability annotations#80
Du-professor wants to merge 2 commits into
Tencent:mainfrom
Du-professor:fix/issue-8-config-vuln-annotation

Conversation

@Du-professor

@Du-professor Du-professor commented Jul 28, 2026

Copy link
Copy Markdown

Closes #8

Summary

This PR defines a consistent annotation model for configuration and non-taint
vulnerabilities and applies it to the four OpenClaw Dockerfile samples
identified by Issue #8.

The work is intentionally independent from the separate code-location-repair work. It was created
from Tencent/VulnGym:main in a separate worktree and branch, contains no
commits from that work, and changes only:

  • config_vuln_annotation.md
  • config_vuln_diff.csv
  • data/entries.jsonl

Annotation model

  • For an explicit dangerous configuration, entry_point anchors the
    configuration block, critical_operation identifies the narrow dangerous
    directive, and trace contains only meaningful state transitions.
  • For a missing safety configuration, entry_point anchors the inspected
    configuration scope and critical_operation anchors runtime activation or
    the explicit end of the scope.
  • trace may be empty and is not populated with routine instructions merely
    to imitate a taint flow.
  • Descriptions distinguish contextual evidence, root cause, and activation,
    and do not overstate container-root impact as guaranteed host compromise.

The document also proposes optional, backward-compatible annotation_type and
missing_condition fields for future discussion. This PR does not change
SCHEMA.md or add those fields to the dataset.

Sample corrections

All source evidence was checked against OpenClaw commit
c56fb7f353d63d6ea97028ee7d8a97bc4edf21c1, referenced by
GHSA-W7J5-J98M-W679.

  • entry-00241: retains FROM as the user-configuration scope anchor and
    CMD ["bash"] as the root runtime activation point; removes seven ordinary
    build instructions from trace.
  • entry-00242: uses the final explicit RUN as end-of-scope evidence and
    states that the actual defect is the absent USER directive; removes the
    pseudo-taint trace.
  • entry-00243: connects the inherited root user directly to ENTRYPOINT and
    removes package/copy/chmod steps that do not alter the user configuration.
  • entry-00244: corrects the factual model. The container starts as app, not
    directly as root; the core defect is NOPASSWD:ALL, with a short trace
    showing USER app, demonstrated sudo capability, and runtime exposure.

verify remains 0, and all non-node fields are unchanged.

Field-level diff

config_vuln_diff.csv contains 39 auditable rows with this interface:

entry_id,node_path,change_type,field,old_value,new_value,reason

Scalar replacements are recorded per field. Trace additions and deletions
include the complete node JSON.

Verification

  • JSONL rows: 408
  • Changed entries: exactly entry-00241 through entry-00244
  • Fixed-commit {file, line, code} checks: passed for every resulting node
  • Schema and ordering invariants: passed
  • Non-target fields and other 404 entries unchanged: passed
  • CSV-to-JSON change reconciliation: 39/39 rows passed
  • git diff --check: passed
  • PR file whitelist: exactly the three files listed above
  • Commit 418553f from the separate code-location-repair branch is not an ancestor of this branch

The OpenClaw source snapshot, caches, temporary validation scripts, and
credentials are not committed.

@Du-professor
Du-professor marked this pull request as ready for review July 29, 2026 05:28
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犀牛鸟】完善配置类和非污点类漏洞在 VulnGym 中的标注方式

2 participants