Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nodejs/node
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v24.14.0
Choose a base ref
...
head repository: nodejs/node
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v24.14.1
Choose a head ref
  • 19 commits
  • 605 files changed
  • 11 contributors

Commits on Feb 24, 2026

  1. Working on v24.14.1

    PR-URL: #61924
    ruyadorno committed Feb 24, 2026
    Configuration menu
    Copy the full SHA
    6521f88 View commit details
    Browse the repository at this point in the history

Commits on Mar 19, 2026

  1. permission: add permission check to realpath.native

    PR-URL: nodejs-private/node-private#794
    Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
    Reviewed-By: Juan JosΓ© Arboleda <soyjuanarbol@gmail.com>
    Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
    CVE-ID: CVE-2026-21715
    RafaelGSS authored and juanarbol committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    bfdecef View commit details
    Browse the repository at this point in the history
  2. permission: include permission check on lib/fs/promises

    PR-URL: nodejs-private/node-private#795
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    CVE-ID: CVE-2026-21716
    RafaelGSS authored and juanarbol committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    d6b6051 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2026

  1. tls: wrap SNICallback invocation in try/catch

    Wrap the owner._SNICallback() invocation in loadSNI() with try/catch
    to route exceptions through owner.destroy() instead of letting them
    become uncaught exceptions. This completes the fix from CVE-2026-21637
    which added try/catch protection to callALPNCallback,
    onPskServerCallback, and onPskClientCallback but missed loadSNI().
    
    Without this fix, a remote unauthenticated attacker can crash any
    Node.js TLS server whose SNICallback may throw on unexpected input
    by sending a single TLS ClientHello with a crafted server_name value.
    
    Fixes: https://hackerone.com/reports/3556769
    Refs: https://hackerone.com/reports/3473882
    CVE-ID: CVE-2026-21637
    
    PR-URL: nodejs-private/node-private#819
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Robert Nagy <ronagy@icloud.com>
    mcollina authored and juanarbol committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    df8fbfb View commit details
    Browse the repository at this point in the history
  2. http: use null prototype for headersDistinct/trailersDistinct

    Use { __proto__: null } instead of {} when initializing the
    headersDistinct and trailersDistinct destination objects.
    
    A plain {} inherits from Object.prototype, so when a __proto__
    header is received, dest["__proto__"] resolves to Object.prototype
    (truthy), causing _addHeaderLineDistinct to call .push() on it,
    which throws an uncaught TypeError and crashes the process.
    
    Ref: https://hackerone.com/reports/3560402
    PR-URL: nodejs-private/node-private#821
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
    CVE-ID: CVE-2026-21710
    mcollina authored and juanarbol committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    380ea72 View commit details
    Browse the repository at this point in the history
  3. deps: V8: backport 0a8b1cdcc8b2

    Original commit message:
    
        implement rapidhash secret generation
    
        Bug: 409717082
        Change-Id: I471f33d66de32002f744aeba534c1d34f71e27d2
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6733490
        Reviewed-by: Leszek Swirski <leszeks@chromium.org>
        Commit-Queue: snek <snek@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#101499}
    
    Refs: v8/v8@0a8b1cd
    Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
    PR-URL: nodejs-private/node-private#828
    2 people authored and juanarbol committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    af22629 View commit details
    Browse the repository at this point in the history
  4. deps: V8: backport 185f0fe09b72

    Original commit message:
    
        [numbers] Refactor HashSeed as a lightweight view over ByteArray
    
        Instead of copying the seed and secrets into a struct with value
        fields, HashSeed now stores a pointer pointing either into the
        read-only ByteArray, or the static default seed for off-heap
        HashSeed::Default() calls. The underlying storage is always
        8-byte aligned so we can cast it directly into a struct.
    
        Change-Id: I5896a7f2ae24296eb4c80b757a5d90ac70a34866
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7609720
        Reviewed-by: Leszek Swirski <leszeks@chromium.org>
        Commit-Queue: Joyee Cheung <joyee@igalia.com>
        Cr-Commit-Position: refs/heads/main@{#105531}
    
    Refs: v8/v8@185f0fe
    Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
    PR-URL: nodejs-private/node-private#828
    2 people authored and juanarbol committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    0450133 View commit details
    Browse the repository at this point in the history
  5. deps: V8: backport 1361b2a49d02

    Original commit message:
    
        [strings] improve array index hash distribution
    
        Previously, the hashes stored in a Name's raw_hash_field for decimal
        numeric strings (potential array indices) consist of the literal
        integer value along with the length of the string. This means
        consecutive numeric strings can have consecutive hash values, which
        can lead to O(n^2) probing for insertion in the worst case when e.g.
        a non-numeric string happen to land in the these buckets.
    
        This patch adds a build-time flag v8_enable_seeded_array_index_hash that
        scrambles the 24-bit array-index value stored in a Name's raw_hash_field
        to improve the distribution.
    
        x ^= x >> kShift; x = (x * m1) & kMask;    // round 1
        x ^= x >> kShift; x = (x * m2) & kMask;    // round 2
        x ^= x >> kShift;                          // finalize
    
        To decode, apply the same steps with the modular inverses of m1 and m2
        in reverse order.
    
        x ^= x >> kShift; x = (x * m2_inv) & kMask;    // round 1
        x ^= x >> kShift; x = (x * m1_inv) & kMask;    // round 2
        x ^= x >> kShift;                              // finalize
    
        where kShift = kArrayIndexValueBits / 2, kMask = kArrayIndexValueMask,
        m1, m2 (both odd) are the lower bits of the rapidhash secrets, m1_inv,
        m2_inv (modular inverses) are precomputed modular inverse of m1 and m2.
        The pre-computed values are appended to the hash_seed ByteArray in
        ReadOnlyRoots and accessed in generated code to reduce overhead.
        In call sites that don't already have access to the seeds, we read them
        from the current isolate group/isolate's read only roots.
    
        To consolidate the code that encode/decode these hashes, this patch
        adds MakeArrayIndexHash/DecodeArrayIndexFromHashField in C++ and CSA
        that perform seeding/unseeding if enabled, and updates places where
        encoding/decoding of array index is needed to use them.
    
        Bug: 477515021
        Change-Id: I350afe511951a54c4378396538152cc56565fd55
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7564330
        Reviewed-by: Leszek Swirski <leszeks@chromium.org>
        Commit-Queue: Joyee Cheung <joyee@igalia.com>
        Cr-Commit-Position: refs/heads/main@{#105596}
    
    Refs: v8/v8@1361b2a
    Co-authored-by: Joyee Cheung <joyeec9h3@gmail.com>
    PR-URL: nodejs-private/node-private#828
    2 people authored and juanarbol committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    87521e9 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2026

  1. build,test: test array index hash collision

    This enables v8_enable_seeded_array_index_hash and add a test for it.
    
    Fixes: https://hackerone.com/reports/3511792
    PR-URL: nodejs-private/node-private#828
    CVE-ID: CVE-2026-21717
    joyeecheung authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    6fae244 View commit details
    Browse the repository at this point in the history
  2. src: handle url crash on different url formats

    Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
    PR-URL: nodejs-private/node-private#816
    CVE-ID: CVE-2026-21712
    RafaelGSS authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    cba66c4 View commit details
    Browse the repository at this point in the history
  3. crypto: use timing-safe comparison in Web Cryptography HMAC and KMAC

    Use `CRYPTO_memcmp` instead of `memcmp` in `HMAC` and `KMAC`
    Web Cryptography algorithm implementations.
    
    Ref: https://hackerone.com/reports/3533945
    PR-URL: nodejs-private/node-private#822
    Backport-PR-URL: nodejs-private/node-private#822
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Anna Henningsen <anna@addaleax.net>
    CVE-ID: CVE-2026-21713
    panva authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    cc0910c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c015edf View commit details
    Browse the repository at this point in the history
  5. deps: V8: override depot_tools version

    For compatibility with Python >= 3.12 we need a newer version of
    `depot_tools` than is used for the older versions of V8.
    
    PR-URL: #62344
    Refs: nodejs/build#4278
    Reviewed-By: MichaΓ«l Zasso <targos@protonmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    richardlau authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    3dab3c4 View commit details
    Browse the repository at this point in the history
  6. deps: upgrade npm to 11.10.1

    PR-URL: #61892
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    npm-cli-bot authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    9ac0f9f View commit details
    Browse the repository at this point in the history
  7. deps: upgrade npm to 11.11.0

    PR-URL: #61994
    Reviewed-By: Richard Lau <richard.lau@ibm.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    Reviewed-By: Jordan Harband <ljharb@gmail.com>
    npm-cli-bot authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    61097db View commit details
    Browse the repository at this point in the history
  8. deps: update undici to 7.22.0

    PR-URL: #62035
    Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    Reviewed-By: Richard Lau <richard.lau@ibm.com>
    nodejs-github-bot authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    0885263 View commit details
    Browse the repository at this point in the history
  9. deps: update undici to 7.24.3

    PR-URL: #62233
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
    Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    nodejs-github-bot authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    f5b8667 View commit details
    Browse the repository at this point in the history
  10. deps: update undici to 7.24.4

    PR-URL: #62271
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
    nodejs-github-bot authored and juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    80cb042 View commit details
    Browse the repository at this point in the history
  11. 2026-03-24, Version 24.14.1 'Krypton' (LTS)

    This is a security release.
    
    Notable changes:
    
    build,deps,test:
      * (CVE-2026-21717) test array index hash collision
    crypto:
      * (CVE-2026-21713) use timing-safe comparison in Web Cryptography HMAC and KMAC
    http:
      * (CVE-2026-21710) use null prototype for headersDistinct/trailersDistinct
    permission:
      * (CVE-2026-21716) include permission check on lib/fs/promises
      * (CVE-2026-21715) add permission check to realpath.native
    src:
      * (CVE-2026-21714) handle NGHTTP2_ERR_FLOW_CONTROL error code
      * (CVE-2026-21712) handle url crash on different url formats
    tls:
      * (CVE-2026-21637) wrap SNICallback invocation in try/catch
    
    PR-URL: nodejs-private/node-private#837
    juanarbol committed Mar 23, 2026
    Configuration menu
    Copy the full SHA
    d89bb1b View commit details
    Browse the repository at this point in the history
Loading