Problem
Verify #109 的 security lens 發現(MEDIUM,inherited):scripts/regression-gate.sh 的 worklist 生成對 baseline.json 的 corpus 欄位有 charset 白名單,但 language 欄位未驗證,兩者寫進同一份 TSV 由 shell 逐行 split——language 含 可偽造一筆 corpus 欄位未經驗證的 worklist 記錄(PoC 曾以 corpora/../ 相對路徑逃出 $DEST)。
邊界:影響僅本機(gate 不提交任何東西;SubmissionPackager 另有 canonicality 過濾)、且 baseline.json 是 repo 內受版控的檔案——實際威脅需 PR 混入惡意 baseline。屬 defense-in-depth 補洞。
(#109 的 release-sweep.sh 原版有同款結構,round-1 fix 改為目錄掃描 worklist 後已不再讀 baseline.json;本 issue 只剩 gate 一處。)
Type
bug
Expected
regression-gate.sh 的 worklist python 段對 language 加與 corpus 同款的 re.fullmatch 白名單(如 [a-z]{2,3}(-[A-Za-z0-9]+)?),不符即 fail-loud。
Impact
單檔小修 + gate 既有測試路徑。
Source: surfaced during /idd-verify #109 follow-up triage (Step 5b);security lens MEDIUM-1(empirically reproduced in sandbox)。
Current Status
- Phase: closed
- Complexity: Simple
- Last update: 2026-07-30
Problem
Verify #109 的 security lens 發現(MEDIUM,inherited):
scripts/regression-gate.sh的 worklist 生成對baseline.json的corpus欄位有 charset 白名單,但language欄位未驗證,兩者寫進同一份 TSV 由 shell 逐行 split——language含可偽造一筆 corpus 欄位未經驗證的 worklist 記錄(PoC 曾以corpora/../相對路徑逃出$DEST)。邊界:影響僅本機(gate 不提交任何東西;
SubmissionPackager另有 canonicality 過濾)、且baseline.json是 repo 內受版控的檔案——實際威脅需 PR 混入惡意 baseline。屬 defense-in-depth 補洞。(#109 的 release-sweep.sh 原版有同款結構,round-1 fix 改為目錄掃描 worklist 後已不再讀 baseline.json;本 issue 只剩 gate 一處。)
Type
bug
Expected
regression-gate.sh的 worklist python 段對language加與corpus同款的re.fullmatch白名單(如[a-z]{2,3}(-[A-Za-z0-9]+)?),不符即 fail-loud。Impact
單檔小修 + gate 既有測試路徑。
Source: surfaced during /idd-verify #109 follow-up triage (Step 5b);security lens MEDIUM-1(empirically reproduced in sandbox)。
Current Status