Skip to content

fix(deps): upgrade fmt to 9.1.0 for security fixes - #141

Merged
jmclong (jmclong) merged 1 commit into
mainfrom
dev/jlong/fix-fmt-security
Oct 28, 2026
Merged

jmclong (jmclong) merged 1 commit into
mainfrom
dev/jlong/fix-fmt-security

Conversation

@jmclong

Copy link
Copy Markdown
Contributor

Summary

Upgrade the native-build dependency from fmt 8.1.1 to the official fmt 9.1.0 release archive, retaining SHA-256 verification:

cceb4cb9366e18a5742128cb3524ce5f50e88b476f1e54737a47ffdf4df4c996

This includes the upstream fixes for:

Apply only the logging compatibility adjustments required by fmt 9: explicit numeric enum conversions and fmt::streamed for UTC timestamps. Preserve existing runtime-format handling and scoped-enum conversions. No logging message templates, signatures, or control flow change. The fmt 9 migration notes document the enum deprecation and removal of automatic ostream discovery.

The focused change replaces 34 lines across 10 files.

Validation

  • Built the exact pinned archive through the existing CMake ExternalProject definition; verified FMT_VERSION=90100.
  • make build USE_CONTAINER=0 passed in the native toolchain container, including the Rust client build.
  • make test-native USE_CONTAINER=0: all 7 CTest suites passed in 170.39 seconds; existing environment-gated tests retain their skips.
  • git diff --check passed.
  • Gitleaks and TruffleHog scans of the patch and final commit found no secrets.

Security scope

This resolves the reported buffer issues, not every possible vulnerability. fmt 9.1.0 is also covered by GHSA-65g5-63wg-xjh4, a macOS-only fmt::say() command-injection advisory with no CVE assigned, fixed in 12.0.0. That macOS path is not applicable to the supported Linux build. Retain 9.1.0 here to keep this upgrade and compatibility migration narrowly scoped.

Pin the official release archive and verified SHA-256 to include the upstream memory-buffer move and floating-point buffer-overflow fixes. Preserve logging behavior with explicit numeric enum conversions and streamed UTC timestamps required by fmt 9. Keep the runtime-format and scoped-enum compatibility fixes already present.

Validated the native and Rust client build, all seven native CTest suites, and the public patch with Gitleaks and TruffleHog.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@jmclong

Copy link
Copy Markdown
Contributor Author

/azp run dacs-pullrequest

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@jmclong
jmclong (jmclong) merged commit 8fb5b2d into main Oct 28, 2026
62 checks passed
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.

2 participants