You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "potiuk (via GitHub)" <gi...@apache.org> on 2026/05/28 18:54:05 UTC

[PR] fix(generate-cve-json): sanitize CWE wrapper + fail loud on unparsable versions [airflow-steward]

potiuk opened a new pull request, #362:
URL: https://github.com/apache/airflow-steward/pull/362

   ## Summary
   
   Two surgical input-sanitization fixes for the CVE-JSON generator, both arising from Arnout Engelen's 2026-05-28 review pass on the Apache Airflow CVE records ([`CVE-2026-46763`](https://cveprocess.apache.org/cve5/CVE-2026-46763), [`CVE-2026-33264`](https://cveprocess.apache.org/cve5/CVE-2026-33264)).
   
   ## Changes
   
   ### `parse_cwe`: strip outer parens / brackets from the title
   
   Reviewers' CWE pickers commonly serialise to `CWE-285 (Improper Authorization)`. The previous concat path then emitted `"CWE-285: (Improper Authorization)"` — both a colon *and* parens — which the reviewer flagged as cluttered. The fix strips a single outer wrapper layer when the entire title is wrapped (`(Foo)` / `[Bar]`); inner parens and unbalanced wrappers are left intact.
   
   ### `parse_affected_versions`: fail loud on unparsable input
   
   The previous fall-through path emitted `{"version": <raw string>}` — invalid per CVE 5.x schema (`version` must be a literal version, never a range expression). Real inputs like `>= 3.0.0 (reporter verified against 3.2.1)` silently shipped as malformed JSON. Now raises `ValueError`; `main` catches it and exits 2 with a clean error.
   
   ### `parse_affected_versions`: warn on bare lower bound without sentinel
   
   `>= 2.0.0` alone emits `{version: "2.0.0"}` with no `lessThan`, which CVE 5.x readers interpret as "this version alone is affected" — almost always misleading. Warns to stderr unless the documented `< NEXT VERSION` sentinel was used.
   
   ## Test plan
   
   - [x] 242 unit tests pass (`uv run pytest`).
   - [x] Coverage added for: CWE paren-strip, bracket-strip, inner-parens-not-stripped, mismatched-wrappers-not-stripped, `ValueError` on unparsable input, message contains the value, warning on bare lower bound, no warning when `< NEXT VERSION` sentinel is present, `main()` returns 2 on `ValueError` with a clean error message.
   - [x] Updated previously-naive tests that relied on the fall-through path.
   
   ## Related
   
   - Follow-up to #360 (`generate-cve-json`: gate DRAFT → REVIEW on active release vote) and #361 (sync-skill `[VOTE]` detection) — same diagnostic session, distinct failure mode. This PR ships only the **input-sanitization** half; the **`vulnogram-api-record-update` merge-mode** half (state-downgrade guard, reference merge, product-change warn) lands as a separate PR against the `oauth-api` package.
   - Arnout's review comments on the affected CVE records prompted the fixes; the records themselves were patched out-of-band before this PR.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(generate-cve-json): sanitize CWE wrapper + fail loud on unparsable versions [airflow-steward]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #362:
URL: https://github.com/apache/airflow-steward/pull/362


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org