RepoJournal
Node.js

@nodejs

The Node.js runtime — every backend team's CVE source of truth

What actually shipped in Node.js, written up every day — commits, pull requests, releases, and security advisories.

One email a day. Unsubscribe in one click.

Pick a date

Topics: JavaScript Full archive →

The Wire · Showcase

NODE PLUGS TIMER MEMORY LEAK, FIXES FFI SIGNATURE DOUBLE-EVALUATION

By RepoJournal · Filed · About Node.js

Node's garbage collector was holding onto timer references it shouldn't have, and a critical FFI vulnerability let native functions receive different signatures than JavaScript thought it was passing.

The timer memory leak [1] is the bigger ship right now. After timers fire, Node was failing to clean up async context store references, preventing garbage collection. The fix iterates over active stores and clears relevant symbols, but the PR notes this pattern needs extending to immediates and intervals too. In parallel, the FFI signature double-evaluation bug [2] was letting attackers craft payloads where native code and the JavaScript wrapper disagreed on what arguments a function accepted. An accessor that mutates `signature.arguments` could make an eight-argument native function appear as fewer arguments to Node's type safety layer. Both merit immediate attention in your next patch cycle. On the surface improvements front, Node's shipping styled `--help` output [3] using util.styleText for bold headers and colored option names, though piped output stays plain. The doc-kit team is also hardening the deprecations table of contents [5], preserving DEP codes so engineers can find deprecations by ID instead of having them stripped from the sidebar.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] timers: do not retain a reference to the async store after firing ↗ nodejs/node
  2. [2] ffi: evaluate function signatures once ↗ nodejs/node
  3. [3] cli: style node --help output with util.styleText nodejs/node
  4. [4] crypto: limit KangarooTwelveParams customization to 512 bytes ↗ nodejs/node
  5. [5] fix: preserve deprecation codes in table of contents ↗ nodejs/doc-kit

Quick answers

What shipped in Node.js on July 20, 2026?
Node's garbage collector was holding onto timer references it shouldn't have, and a critical FFI vulnerability let native functions receive different signatures than JavaScript thought it was passing. In total, 9 commits and 9 pull requests landed.
Who contributed to Node.js on July 20, 2026?
7 developers shipped this update, including mcollina, Adrián Estrada, trivikr, panva, avivkeller, MFA-G, and Brian Muenzenmeyer.
What were the notable Node.js updates?
timers: do not retain a reference to the async store after firing, ffi: evaluate function signatures once, and cli: style node --help output with util.styleText.

More from @nodejs

Daily updates, in your inbox

Follow Node.js

What actually shipped in Node.js, written up every day — commits, pull requests, releases, and security advisories.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?