Skip to content

chore(deps): bump @noble/curves from 2.2.0 to 2.3.0 - #494

Merged
davidwkeith merged 1 commit into
mainfrom
dependabot/npm_and_yarn/noble/curves-2.3.0
Aug 18, 2026
Merged

chore(deps): bump @noble/curves from 2.2.0 to 2.3.0#494
davidwkeith merged 1 commit into
mainfrom
dependabot/npm_and_yarn/noble/curves-2.3.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 15, 2026

Copy link
Copy Markdown
Contributor

Bumps @noble/curves from 2.2.0 to 2.3.0.

Release notes

Sourced from @​noble/curves's releases.

2.3.0

Security & constant-timeness

  • Hardened constant-time execution from best-effort to actual guarantees: no measurable timing behavior on 200K samples. Scalar multiplication now uses secret-scalar blinding via CSPRNG, un-precomputed points now use a constant-time fixed-window multiply instead of variable-time fallbacks, and modular arithmetic helpers were hardened. New CT benchmarks track timing behavior.
  • General hardening across all modules
  • Fixes from the Trail of Bits review: recovered ECDSA signatures are now bound to their recovery id, non-canonical BLS signature encodings are rejected, Edwards <-> Montgomery conversion helpers were corrected, and FROST DKG round-2 retry handling was hardened.

X25519 hardening

It was possible to execute a remote timing attack on X25519, across many samples, and learn up to 4.036 bits of long-term private key. Other 247 bits were NOT affected.

The impact: mainly fingerprinting (recognition of key across deployments), NOT key recovery, NOT X25519 breakage. Maintainer was also not able to escalate to co-residency (SMT).

Reported and found by:

  • George Stergiopoulos, Department of Informatics, Athens University of Economics and Business, Greece (geostergiop@aueb.gr)
  • Constantinos Patsakis, Department of Informatics, University of Piraeus, 80 Karaoli & Dimitriou str., 18534 Piraeus, Greece (kpatsak@unipi.gr)

Performance

  • ECDSA/EdDSA verification up to +32%, Weierstrass ECDH up to +19%, x25519 getPublicKey 2.7×
  • BLS signatures 2x
  • Init time (first getPublicKey or sign) reduced ~2x for ed25519, p256, p384, p521
  • Also faster verification of recovered signatures, pairing tower / FFT / Pippenger optimizations, and joint-MSM paths in FROST and OPRF
  • getPublicKey / sign got slower because we've decreased window size (W=8 => W=6) and hardened CT execution (see above). Long-running apps that prefer 2.2.0-level speed can restore it with one line: secp256k1.Point.BASE.precompute(8) (likewise for other curves).

Misc

  • Smaller bundles: improved tree-shaking across modules
  • Better error messages and type checks
  • Upgrade noble-hashes to 2.3.0, with performance boost
  • Reduce on-disk size 1831kb → 1548kb (-282kb) by disabling source maps (they became less relevant).

Full Changelog: paulmillr/noble-curves@2.2.0...2.3.0

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@noble/curves](https://github.com/paulmillr/noble-curves) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/paulmillr/noble-curves/releases)
- [Commits](paulmillr/noble-curves@2.2.0...2.3.0)

---
updated-dependencies:
- dependency-name: "@noble/curves"
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 15, 2026
@dependabot
dependabot Bot requested a review from davidwkeith as a code owner August 15, 2026 23:55
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 15, 2026

@davidwkeith davidwkeith left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Reviewed. The diff is a clean, mechanical bump: packages/atproto-pds/package.json and pnpm-lock.yaml both move @noble/curves 2.2.0 → 2.3.0, and the lockfile correctly cascades the transitive @noble/hashes bump (2.2.0 → 2.3.0) to match — no stray or inconsistent lockfile entries.

Worth calling out: 2.3.0 isn't just routine — per upstream's release notes it hardens constant-time execution (secret-scalar blinding, constant-time fixed-window multiply) and fixes a real X25519 timing side-channel that could leak a few bits of a long-term private key. Since @dwk/atproto-pds (the only consumer of this dependency in the workspace) does actual cryptographic signing/verification, this is a meaningful security update for that package, not just noise — worth prioritizing over other pending dependency PRs.

CONTRIBUTING.md conformance: the PR title (chore(deps): bump @noble/curves from 2.2.0 to 2.3.0) already matches the required Conventional Commits format (lowercase type, scope in parens, no capitalization) — no changes needed there. No changeset is expected either, since @dwk/atproto-pds's own version isn't changing.

CI (build-test, image) was still in progress at review time — recommend merging once those go green.


Generated by Claude Code

@davidwkeith
davidwkeith merged commit 9d8bdd4 into main Aug 18, 2026
7 checks passed
@davidwkeith
davidwkeith deleted the dependabot/npm_and_yarn/noble/curves-2.3.0 branch August 18, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant