Skip to content

deny: RUSTSEC-2024-0449 turned ci / gate red on an unchanged main — a dated, ledgered exemption (Refs #2172) - #2173

Merged
noahgift merged 1 commit into
mainfrom
PMAT-2172-libyaml-red-main
Oct 15, 2026
Merged

noahgift merged 1 commit into
mainfrom
PMAT-2172-libyaml-red-main

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

Summary

ci / gate went red on an unchanged main: the advisory database gained RUSTSEC-2024-0449 (unsafe-libyaml, no fixed release), reached through serde_yaml 0.9.34 (xpile, xpile-contracts, xpile-forjar-codegen and third-party aprender-contracts 0.33.0). Removing the in-tree uses alone would not clear it.

  • deny.toml ignores RUSTSEC-2024-0449 with a reason.
  • docs/audits/advisory-ignores.yaml ledgers it under the existing PMAT-2120 expiry gate: owner noah, owner_ticket PMAT-2172, removed_by 2026-11-30.

Evidence

  • cargo deny check advisories exits 0 with the ignore, 1 with only that id removed.
  • advisory_expiry 15/15 with XPILE_REQUIRE_CARGO_DENY=1.
  • Review: 3/3 PASS (claude-sonnet-5-5, claude-haiku-4-5, gemini-3.8-flash-high); planted control rejected 3/3; the ignore was judged a dated, ledgered exemption rather than a waiver, 3/3.

Merge order after this: #2167, then merge main into #2171.

Refs #2172

🤖 Generated with Claude Code

… / gate red on an unchanged main — a dated, ledgered exemption (Refs #2172)

The advisory-db moved under the tree: main's gate was green on 2026-10-10 and
`cargo deny check advisories` FAILED from PR #2171's run on 2026-10-13
(run 38477290210) and on origin/main locally on 2026-10-15.

Reach (cargo tree -i, all features): serde_yaml 0.9.34+deprecated, depended on
by xpile, xpile-contracts, xpile-forjar-codegen and the third-party
aprender-contracts 0.33.0. Dropping the in-tree uses alone leaves it reachable.

The exemption goes through the PMAT-2120 ledger: owner noah, owner_ticket
PMAT-2172, removed_by 2026-11-30 (46 days, inside max_window_days 90).
Measured live: exit 0 with the ignore, exit 1 with only this id removed.

PMAT-2172

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@noahgift noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE — seat 1, aprender-a7, head f931743

Read the full diff at this head; CI green on it.

  • deny.toml: one id added, RUSTSEC-2024-0449, with crate and ticket named inline.
  • docs/audits/advisory-ignores.yaml: entry has crate, class unmaintained, owner, owner_ticket PMAT-2172, removed_by 2026-11-30 (46 days, inside max_window_days: 90), so the existing expiry gate retires it.
  • Reason states the reach (serde_yaml 0.9 via xpile, xpile-contracts, xpile-forjar-codegen, aprender-contracts 0.33.0) and the two-part removal condition; the cause is advisory-db drift under an unchanged tree, not a new dependency.
  • Not a waiver: the gate still runs and still fails on any other advisory, and this id goes red again on its date.

Note (non-blocking): unlike the sibling ruchy change, there is no test bounding the ignore's reach (a new crate linking unsafe-libyaml is covered only by the date). Worth adding with the PMAT-2172 removal work.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat 2, aprender-clerk @f931743322 — APPROVE.

Not an author: f931743 is the only commit, written by infra-38-worker.

  • deny.toml adds RUSTSEC-2024-0449 (unsafe-libyaml, class unmaintained, not a vulnerability) to the ignore list. Its ledger row in docs/audits/advisory-ignores.yaml names the crate, the class, owner noah, owner_ticket PMAT-2172 and removed_by 2026-11-30, which is 46 days out and inside max_window_days 90. The header comment now counts eight ignores instead of seven.
  • The row is enforced: crates/xpile/tests/advisory_expiry.rs checks that deny.toml and the ledger agree and turns red when a date passes. It runs under cargo test --workspace (workspace-test), which is green on this head.
  • Reach is stated honestly: xpile, xpile-contracts and xpile-forjar-codegen use serde_yaml 0.9 directly, so removal needs both the in-tree port and an upstream release, as the row says.
  • The lock has no rustls or wasmtime, so the rustls 0.23.45 and wasmtime 48.0.5 audit reds seen on ruchy#261 do not apply here.
  • The required checks gate and workspace-test are green @f931743322.
    Note: the quorum receipt (i38-q2171) is bound to the stacked head ebb825fd, which contains this commit. It is not bound to f931743 alone.

@noahgift
noahgift merged commit 85ac742 into main Oct 15, 2026
11 checks passed
@noahgift
noahgift deleted the PMAT-2172-libyaml-red-main branch October 15, 2026 01:18
noahgift pushed a commit that referenced this pull request Oct 15, 2026
Brings the branch up to main (incl. #2173). One conflict, docs/roadmaps/roadmap.yaml: both sides appended a row at EOF; resolved as main (PMAT-2172) followed by this PR's PMAT-2166 row.

Refs PMAT-2166
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant