Skip to content

fix: green gate: repin moved actions, update vulnerable crates - #83

Merged
vyncint merged 3 commits into
mainfrom
fix/gate-green-0-3
Nov 11, 2026
Merged

vyncint merged 3 commits into
mainfrom
fix/gate-green-0-3

Conversation

@vyncint

@vyncint vyncint commented Nov 11, 2026

Copy link
Copy Markdown
Owner

Main has been red since mid-October: every pull request fails deny (15 RustSec advisories) and zizmor (14 action pins whose tags moved upstream), so none of the open Dependabot PRs can pass on its own. This makes the gate green again; the commit bodies carry the detail.

ci: repin the actions whose tags moved. dtolnay/rust-toolchain v1 (683b588c, 11 pins) and Swatinem/rust-cache v2 = v2.9.3 (d1527c8f, 3 pins), plus the three action updates Dependabot has open: upload-artifact v7.0.2 (#70), install-action v2.87.30 (#77), crates-io-auth-action v1.0.6 (#78). Every SHA was checked against its tag with gh api. zizmor at pedantic, online and offline: no findings.

fix(deps): update the crates RustSec flags inside the current chain. rustls 0.23.46 (four advisories, including TLS secrets in Debug and a 1 GiB Brotli decompression before authentication), rustls-webpki 0.103.16, tokio 1.54.1, the patched zstd 0.13.4 line (four advisories), ctutils, pulldown-cmark, and the AWS SDK family within semver, which drops the unmaintained pin-utils. Dependabot's #81 group and #82 are covered where they apply.

One advisory stays accepted, with its reason: thrift (RUSTSEC-2026-0435, CVE-2026-43868) via parquet 58. The fix is parquet 59 (no thrift), which needs the Ballista 55 / DataFusion 55 chain bump (#40), coming next. RustSec scopes it to TBinaryInputProtocol::read_bytes/read_string, which parquet 58's own compact-protocol footer reader never calls. deny.toml and SECURITY.md say so, and both entries go with the chain bump (#54).

Verified locally: cargo deny check, make msrv (1.94.1, --locked), make lint, make test (163 passed, 0 failed), zizmor.

Supersedes #70, #75, #77, #78, #79, #82 and the applicable part of #81; Dependabot should close them once this lands.

zizmor's online audit failed every pull request since 2026-10-18 with
stale-action-refs and ref-version-mismatch on 14 pins: the commits
pinned for dtolnay/rust-toolchain `v1` (e2a55d2) and Swatinem/rust-cache
`v2` (6323deb) are no longer the commits those tags name. Repinned to
what the tags name today, each checked with
`gh api repos/<owner>/<repo>/git/ref/tags/<tag>`:

- dtolnay/rust-toolchain v1          683b588c (11 pins)
- Swatinem/rust-cache v2 (= v2.9.3)  d1527c8f (3 pins)

and, in the same pass, the three updates Dependabot has open, also
checked against their tags:

- actions/upload-artifact v7.0.2           cf430e03 (#70)
- taiki-e/install-action v2.87.30          a4d3f3f7 (#77)
- rust-lang/crates-io-auth-action v1.0.6   3268eb41 (#78)

`zizmor --persona=pedantic .github/workflows/` with a GitHub token
(online audits on, as CI runs it): no findings; offline: no findings.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
`cargo deny check` failed on 15 advisories. All but one have a fix
inside the version ranges the Ballista 54 chain allows, so the lock
moves only those crates:

- rustls 0.23.45 -> 0.23.46: RUSTSEC-2026-0346 (Debug exposes TLS
  secrets), -0347, -0348 (Brotli certificate decompression up to 1 GiB
  before authentication), -0349
- rustls-webpki 0.103.15 -> 0.103.16: RUSTSEC-2026-0382
- tokio 1.53.1 -> 1.54.1: RUSTSEC-2026-0386 (AsyncFd I/O safety)
- zstd 0.13.3 -> 0.13.4, zstd-safe 7.2.4 -> 7.4.0, zstd-sys 2.0.16 ->
  2.1.2: RUSTSEC-2026-0391, -0398, -0403, -0410. zstd 0.13.4 is the
  patched 0.13 line, so DataFusion's `zstd ^0.13` no longer holds it back
- ctutils 0.4.2 -> 0.4.8: RUSTSEC-2026-0385
- pulldown-cmark 0.13.4 -> 0.13.6 (a build dependency of tonic's
  prost-build): RUSTSEC-2026-0414, -0433
- the aws-smithy/aws-config family (Ballista's bundled AWS SDK) within
  semver, which drops pin-utils (RUSTSEC-2026-0441, unmaintained, no
  fixed release): aws-smithy-http 0.64.3 no longer depends on it

and Dependabot's open group (#81) where it applies: insta 1.49.0, libc
0.2.191, objc2 0.6.5, serde_json 1.0.154, plus rustls (#82).

The one that cannot move here is thrift (RUSTSEC-2026-0435, which RustSec
imported on 2026-11-02 for CVE-2026-43868): parquet 58 requires thrift
^0.17, and the fix is parquet 59, which drops thrift and needs the
Ballista 55 chain (#40). RustSec scopes the advisory to
TBinaryInputProtocol::read_bytes/read_string; parquet 58 decodes footers
with its own compact-protocol reader (parquet/src/thrift.rs) and never
constructs the binary protocol. deny.toml accepts the RustSec id with
that reason beside the existing GHSA entry, and SECURITY.md names it;
both go with the chain bump (#54).

Verified: `cargo deny check` passes (the two warnings are the GHSA entry
RustSec does not know by that id, as #54 describes); `make msrv` (1.94.1,
--locked), `make lint` and `make test` (163 passed, 0 failed) pass.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
The lockfile update in the previous commit is what the release binaries and `cargo install --locked` build from, so it ships to users and gets a Security entry under [Unreleased].

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
@vyncint
vyncint merged commit 643ad2b into main Nov 11, 2026
17 checks passed
@vyncint
vyncint deleted the fix/gate-green-0-3 branch November 11, 2026 13:43
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