Repository navigation
chore(deps): tokio 1.53.3 for RUSTSEC-2026-0386 and zod 4.6.7 for GHSA-mrhx-c7xc-m3w5 - #71
Merged
Merged
Conversation
…ed, an unsound AsyncFd constructor - RUSTSEC-2026-0386 (dated 2026-10-13; it entered the advisory database 2026-10-23 14:42Z, after main's 09:06Z audit was clean): tokio, informational "unsound". `AsyncFd::new`, `with_interest`, `try_new` and `try_with_interest` accept any `T: AsRawFd`, so safe code can register a descriptor it does not own. Patched in 1.51.6 and 1.53.3, which deprecate them for the `unsafe` `AsyncFd::register`; 1.52.3 is affected. audit.toml denies warnings, so `cargo audit` fails on it. The path here is tokio 1.52.3 <- truffle-core 0.7.19, ghosttea, ghosttead and ghosttea-truffle (and tokio-util, quinn and tokio-tungstenite). - Exposure read: no `AsyncFd` call in ghosttea's Rust sources, in truffle-core 0.7.19, or in tokio-util 0.7.18, quinn 0.11.11 and tokio-tungstenite 0.29.0. The rest of the dependency tree was not checked. - `cargo update -p tokio --precise 1.53.3`. tokio's version and checksum move, and cargo's resolver re-points six packages' windows-sys edge from 0.61.2 to 0.52.0: errno 0.3.14, quinn-udp 0.5.15, rustix 1.1.4, rustls-platform-verifier 0.7.0, tempfile 3.27.0 and winapi-util 0.1.11. Each declares a windows-sys range that admits both, both versions were already locked, no package is added or removed, and tokio's own edge stays on 0.61.2. It affects Windows targets only. - Setting the ghosttea-config patch line aside (f17a0ff's method) gives the same lock, and so does tokio 1.54.1. A lock with tokio alone would have to be hand-written. - `cargo metadata --locked` agrees. tokio 1.53.3's rust-version is 1.71, under the workspace's 1.88. - The iOS inventory records the lock's hash, so its documented chain regenerated it, as b09caeb did. Only cargoLockSha256 and the hashes derived from it move. tokio is not an iOS component. - Expected red: Cargo.lock is an Apple artifact source input, so this tree's digest (0c82a3a6...) still does not match the pinned 0.13.1 artifact's (fa08d019...). `audit-published` fails until 0.13.2 republishes the artifact, as it has since #69. - Checks here: cargo audit is clean (263 crates); the iOS BOM, release-resources and App Store checks and `check:swiftpm:manifests` pass. npm audit at high is 0 once the zod commit above this one lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, dev tooling only - GHSA-mrhx-c7xc-m3w5 (CVE-2023-54404, high): "Zod can exhaust memory while validating oversized constrained collections", zod < 4.6.6. GitHub reviewed it 2026-10-23 18:26Z, which is when npm audit began reporting it, after main's 09:06Z audit was clean. `npm audit --audit-level=high` fails on it, in dependency-audit and in publish-release's validate. - Dev-only: zod 4.4.3 comes in through eslint-plugin-react-hooks 7.1.1 (`zod: ^3.25.0 || ^4.0.0`) and zod-validation-error 4.0.2. The lock marks it `dev`, and no published package depends on it. - `npm update zod --package-lock-only --ignore-scripts`: package-lock.json moves zod alone, to 4.6.7, the newest 4.x (its version, resolved URL and integrity). No manifest changes. - npm audit at high is 0. Three moderates remain, all dev tooling and out of scope here: @vitest/mocker (through vitest) and fast-uri 3.1.8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jamesyong-42
added a commit
that referenced
this pull request
Oct 24, 2026
- Package.swift and apple-native-artifact.lock.json now name ghosttea-apple-native-21a593e3611b. ghosttea-apple-native-artifact.yml run 40047394201 built it from the clean release commit 8263cf0 (release/0.13.2), then: - qualified it: the complete SwiftPM suite (298 tests), and a local-artifact consumer linking all 18 public library products against the candidate; - attested it (attestation 59304697); - published it after promotion through the protected release environment. - The fields come from the SERVED release, not the run. The lock's tag, url, checksum, size, contentDigest, sourceDigest, entries and slices equal the published GhostteaAppleNative.xcframework.zip.json, field for field. - Here: the served archive's SHA-256 41e7a5ec… equals `swift package compute-checksum`, and its size is 45310278. The source digest 0c9f828e… is `nativeSourceDigest()` of this tree, and `check:apple-native-artifact` and `check:swiftpm:manifests` pass. - In CI: the promotion job re-downloaded the published assets and re-derived from those bytes the checksum, the content digest 21a593e3… (137 entries), the three slice digests and the source digest (`verify:ghosttea-apple-native-package`). - `check:apple-native-artifact:release` was not run here, because this release has no local build window. The release PR's `audit-published` runs it against this lock, with the published-artifact consumer. - It supersedes ghosttea-apple-native-6c5898e91c6a, the 0.13.1 artifact. #69's ctutils move, #71's tokio move and the 0.13.2 bump moved the native source digest (fa08d019… to 369b5f27…, 0c82a3a6…, then 0c9f828e…) through Cargo.lock, Cargo.toml, native/ghosttea/Cargo.toml, and ghosttea-core's and ghosttea-vt's Cargo.toml. A field-only update was not possible. #70's soak change and the audit.toml line are outside the digest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both audits went red on main after #70's checks. Two advisories entered their databases on 2026-10-23, both after main's last clean audits at 09:06Z. This PR moves the two lockfiles and changes no source or manifest.
50343dd: tokio 1.53.3 for RUSTSEC-2026-0386.
AsyncFdconstructors (new,with_interest,try_new,try_with_interest) accept anyT: AsRawFd, so safe code can register a descriptor it does not own.unsafeAsyncFd::register. 1.52.3 is affected..cargo/audit.tomldenies warnings.AsyncFdcall in ghosttea's Rust sources, in truffle-core 0.7.19, or in tokio-util 0.7.18, quinn 0.11.11 and tokio-tungstenite 0.29.0. The rest of the dependency tree was not checked.cargo update -p tokio --precise 1.53.3, andcargo metadata --lockedagrees. tokio 1.53.3 needs Rust 1.71, under the workspace's 1.88.Cargo also re-points six windows-sys edges. The same command makes cargo's resolver move six packages' windows-sys edge from 0.61.2 to 0.52.0: errno 0.3.14, quinn-udp 0.5.15, rustix 1.1.4, rustls-platform-verifier 0.7.0, tempfile 3.27.0 and winapi-util 0.1.11.
ghosttea-configpatch line aside (f17a0ff's method) gives the same lock, and so does tokio 1.54.1.The iOS inventory records the lock's hash, so its documented chain regenerated it, as #69 did. Only
cargoLockSha256and the hashes derived from it move. tokio is not an iOS component.f88df38: zod 4.6.7 for GHSA-mrhx-c7xc-m3w5 (CVE-2023-54404, high): "Zod can exhaust memory while validating oversized constrained collections", zod < 4.6.6.
npm audit --audit-level=highbegan failing on it.zod: ^3.25.0 || ^4.0.0) and zod-validation-error 4.0.2. The lock marks itdev. No published package ships zod, so nothing a consumer installs changes.npm update zod --package-lock-only --ignore-scriptsmoves zod alone to 4.6.7, the newest 4.x. No manifest changes.Expected red:
audit-published. This tree's Apple native source digest (0c82a3a6…) still differs from the pinned 0.13.1 artifact's (fa08d019…), as it has since #69. Cargo.lock is one of that digest's inputs. 0.13.2 republishes the artifact.Checks
check:swiftpm:manifests;format:check's paths passes.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.