All Posts Next

The Node.js HTTP/2 vulnerabilities fixed this week include flaws that let unauthenticated clients crash servers or read other connections' data, a direct concern for regulated businesses running Node.js in production.

The Node.js project published the fixes in its November 2026 security release, and The Hacker News covered the release with a detailed summary of each flaw. The release touches all three supported release lines, so anyone operating a Node.js server that accepts HTTP/2, HTTPS or TLS connections directly, including healthcare platforms, defense contractors and SaaS providers under audit, should treat this as a priority patch cycle.

Key Takeaways

  • Node.js fixed 16 vulnerabilities in this release, seven of them rated high, across the 22.x, 24.x and 26.x release lines.
  • One HTTP/2 flaw, CVE-2026-123863, lets any unauthenticated client crash a default HTTP/2 server, over both TLS and cleartext, and the trigger condition is behavior the project calls typical.
  • A second HTTP/2 flaw, CVE-2026-123866, can send a client pieces of server memory, including responses intended for other connections.
  • A separate HTTPS flaw, CVE-2026-123864, can expose memory from other connections, "including TLS private keys and other users' requests," on all three supported lines.
  • The advisory lists updating as the only fix and names no workaround, and end-of-life lines including 20.x and 25.x receive no fix at all.

What happened: the facts in detail

The release itself

The Node.js project released updated versions for all three supported lines: 22.23.5, 24.22.3, and 26.13.1. According to the project's security release, the update fixes 16 vulnerabilities in Node.js itself, seven rated high, and also includes dependency updates addressing public vulnerabilities. The Hacker News report confirms the same version numbers and counts.

The HTTP/2 crash flaw: CVE-2026-123863

This flaw lets any unauthenticated client abort a server that uses Node.js's built-in HTTP/2 support on the 24.x and 26.x release lines. The project's advisory describes a reachable assertion in HTTP/2 session teardown: a client can arrange for a stream that still holds nghttp2-allocated header buffers to outlive its session. The stream is removed from the session's stream set but never detached, so when the session destructor runs, the memory accounting is nonzero and a CHECK_EQ assertion fails, terminating the process.

What makes this especially consequential is the trigger condition. It needs only a default HTTP/2 server whose handler responds before the request body has fully arrived, which the project describes as typical. The crash works over both TLS and cleartext connections. The advisory also notes this is a variant of CVE-2024-27983 that the earlier fix did not cover, because that fix only detached streams still tracked in the session.

The HTTP/2 memory leak flaw: CVE-2026-123866

A use-after-free in HTTP/2 stream teardown can leak response memory to a peer, including the contents of other connections' response buffers. The flaw affects all three supported lines, but the trigger differs by version. From 24.22.0 and 26.9.0 onward, a client alone can trigger it, for example by sending a peer RST_STREAM while a write is still backpressured. On 22.x and older 24.x and 26.x builds, it can still be triggered when the server itself closes a stream partway through a response, for example after an idle timeout.

The HTTPS memory disclosure flaw: CVE-2026-123864

This flaw lets an unauthenticated client read memory belonging to other connections on a Node.js HTTPS server, "including TLS private keys and other users' requests," according to the project. Technically, it is a re-entrancy flaw: when asked to write zero bytes, the TLS layer clears its output buffer directly, and if that write is issued from JavaScript running inside the HTTP parser's body callback, the next TLS record is decrypted while the parser is still mid-body. The parser is re-entered, producing a use-after-free and an out-of-bounds heap read, and the server then copies that freed or unrelated heap memory into the response.

Triggering it requires a handler that calls res.flushHeaders() before the request body has fully arrived and later calls res.end() with a non-empty chunk. Reading the leaked memory additionally requires an ordinary route that echoes or stores a request body. Cleartext HTTP servers built with node:http are not affected. The flaw affects all three supported lines.

The other high-rated flaws

Four more high-rated flaws round out the picture, all in Node.js's own HTTP/2, HTTPS and TLS server code:

  • CVE-2026-123865: an unauthenticated HTTP/2 client can permanently leak server memory and file descriptors on all three lines. If a protocol error, such as an oversized frame header, occurs while the session is already shutting down, nghttp2 tears the session down internally but Node.js never notices. The socket stays in CLOSE_WAIT and all HTTP/2 state for that connection is held in memory indefinitely, with no further cost to the attacker. The attacker can start the shutdown remotely by sending GOAWAY(NO_ERROR), making it reliable against default servers. The advisory describes it as an incomplete-fix case of CVE-2026-48937.
  • CVE-2026-123874: a client can corrupt server memory on 24.x and 26.x when the server serves files with stream.respondWithFile() or stream.respondWithFD(). On all three lines, canceling such downloads can also crash the server, tracked separately as CVE-2026-123875 and rated medium.
  • CVE-2026-126051: a client can crash a TLS server on 24.x and 26.x if the server uses the SNICallback, OCSPRequest, newSession or resumeSession hooks, or server.addContext().
  • CVE-2026-123872: on a TLS server with stricter client-certificate rules for some hostnames, a client approved for another hostname can switch to a stricter one during TLS 1.2 renegotiation without meeting its rules. All three lines are affected.

Who found them

Five of the flaws, including CVE-2026-123863 and CVE-2026-123864, were reported by Chris Rohlf in collaboration with Claude and Anthropic Research, according to the advisory. CVE-2026-123865 was reported by pimterry. The project credits mcollina with fixing several of the flaws.

Understanding the Node.js HTTP/2 vulnerabilities: how they work and why they matter

The common thread across the Node.js HTTP/2 vulnerabilities is that the runtime's own server code, not application logic, holds the defect. A business running a Node.js API behind a load balancer that terminates TLS may assume its exposure depends on its own code quality. Here, that assumption fails: the crash flaw and the memory leak flaw live in the HTTP/2 implementation itself, and the HTTPS flaw lives in the interaction between the TLS layer and the HTTP parser.

The crash flaws are availability problems. An attacker needs no credentials and no unusual server configuration; a default HTTP/2 server that responds before a request body finishes arriving is enough. For a regulated business, an unauthenticated remote crash of a production service is a reportable-incident conversation even when no data is exposed, because it can interrupt services that compliance obligations require you to keep available.

The memory disclosure flaws are confidentiality problems, and they are more serious in kind. CVE-2026-123866 can send one client the response buffers of other connections, meaning data your server intended for a different user. CVE-2026-123864 can expose TLS private keys and other users' requests from an HTTPS server. If a server met the conditions for that flaw, the theoretical exposure includes the cryptographic material protecting the connections themselves, which is why the open question about key replacement, discussed below, matters.

The resource exhaustion flaw, CVE-2026-123865, sits between the two categories. It does not crash the process or leak data, but each triggered connection permanently holds memory and file descriptors. Repeated triggers degrade a server over time, and because the attacker pays no ongoing cost, the abuse is reliable against default configurations.

It is also worth noting the pattern of incomplete fixes. The crash flaw is a variant of an earlier CVE whose fix did not cover this path, and the resource exhaustion flaw is an incomplete-fix case of another earlier CVE. Runtime-level bugs in complex protocol implementations tend to resurface in adjacent code paths, which argues for treating patching as a recurring discipline rather than a one-time event. Readers interested in the protocol-level history can see our earlier analysis of major HTTP/2 vulnerabilities.

What the evidence does and does not show

The sources are precise about what is known, and equally clear about what is not. Several limits deserve emphasis before any organization decides how to respond.

First, the advisory does not report any attacks using these flaws. There is no evidence in the sources of exploitation in the wild, and equally no guarantee that none will occur now that the details are public.

Second, the advisory lists no workaround for servers that cannot update yet. Updating to the fixed version for each line is the only fix the project names. Organizations that cannot patch immediately have no documented mitigation from the project to fall back on.

Third, the advisory does not say whether servers that met the conditions for the HTTPS flaw should replace their TLS keys or other secrets after updating. Given that the flaw can expose TLS private keys, this is a significant open question, and the sources do not answer it. Organizations that believe their servers met the trigger conditions will need to make that judgment with their own security advisors.

Fourth, end-of-life lines receive no fix. The project states that end-of-life versions, including 20.x and 25.x, are always affected by these issues. Any organization still running those lines has no patch path within this release at all.

Fifth, the trigger conditions vary in ways that matter for scoping. Some flaws affect only 24.x and 26.x, others affect all three lines, and the HTTPS flaw requires a specific handler pattern plus a route that echoes or stores request bodies. Determining whether a given application was exploitable requires examining that application's code, not just its Node.js version. The sources do not provide a tool or method for confirming whether a particular server was actually targeted or compromised.

Finally, the discovery method itself is notable but bounded in what it tells you. Five flaws came from a researcher working in collaboration with Claude and Anthropic Research, which says something about how modern vulnerability discovery is evolving. It does not tell you how many similar flaws remain unfixed in the runtime, a question no source here addresses.

Compliance and Risk Implications for Regulated Organizations

For a regulated business, this release is not just a patching chore. Two of the flaws can expose data belonging to other connections, including TLS private keys and other users' requests. That converts a routine vulnerability management exercise into a potential breach analysis with regulatory consequences.

The Node.js project's advisory does not report any attacks using these flaws, and it does not say whether servers that met the conditions for the HTTPS flaw should replace their TLS keys or other secrets after updating. That silence matters. If your environment exposed a vulnerable HTTPS server, you cannot conclude from the advisory alone that no keys were read. Under HIPAA, a covered entity or business associate must conduct a risk assessment and, where a breach of protected health information is determined, follow the Breach Notification Rule at 45 CFR 164.404, 164.406, and 164.408. Defense contractors handling covered defense information face a separate clock: DFARS 252.204-7012 requires reporting a cyber incident affecting covered defense information to DoD within 72 hours of discovery via dibnet.dod.mil, using a DoD-approved medium assurance certificate obtained in advance. You cannot file that report quickly if you do not have the certificate ready before an incident.

NIST SP 800-171's Incident Response family requires an operational incident handling capability and the tracking, documenting, and reporting of incidents. A timely external report with no internal process still fails the requirement. Similarly, NIST SP 800-171 requires FIPS-validated cryptography to protect the confidentiality of covered defense information, which is one reason a flaw that can expose TLS private keys deserves more than a routine severity score in a defense environment. The same logic applies to PCI DSS environments, where cardholder data flows through TLS-protected connections and the framework's 12 control areas depend on that encryption holding.

There is also a governance dimension. CISA's Cross-Sector Cybersecurity Performance Goals 2.0, aligned to the NIST Cybersecurity Framework 2.0 functions including GOVERN, emphasize knowing what is running in your environment and patching known risks promptly. NIST SP 800-61 Rev. 3 frames incident response as something to prepare for in advance, not improvise after the fact. A Node.js runtime buried in an application nobody inventoried is precisely the kind of gap these frameworks exist to close.

Finally, note the version math. End-of-life lines, including 20.x and 25.x, receive no fix in this release, and the Node.js project says such versions are always affected. Running an unsupported runtime in a system that touches regulated data is a finding waiting to be written, and under CMMC Level 2 it maps directly to configuration management and maintenance expectations built on the 110 controls of NIST SP 800-171 Rev 2.

What This Means for Regulated Industries

Defense Contractors

If you run Node.js applications inside or adjacent to your CUI boundary, treat this release as an urgent item. The HTTPS flaw can expose TLS private keys and other users' requests, which undermines the FIPS-validated cryptography that NIST SP 800-171 expects you to use for covered defense information. Update to 22.23.5, 24.22.3, or 26.13.1, then determine whether the vulnerable configuration existed and for how long. If you conclude an incident affecting covered defense information occurred, the 72-hour DFARS 252.204-7012 reporting clock starts at discovery, and you must preserve affected system images and monitoring data for at least 90 days afterward. Contractors working toward CMMC Level 2 should document this event and their response in their system security plan and POA&M; assessors will ask how vulnerability management actually operates, not just whether a policy exists. For context on the framework, see our NIST 800-171, CSF 2.0 and 800-53 Frameworks guide and the CMMC 2.0 Certification Guide.

Healthcare

Hospitals, practices, and business associates frequently run Node.js in patient portals, scheduling APIs, and integration middleware. The memory-disclosure flaws could expose responses intended for other connections, which in a healthcare context may include protected health information. IBM's 2026 research puts the average healthcare breach at $6.64M, and HHS OCR enforcement actions in 2025 and 2026 show regulators penalizing both unencrypted data and disabled safeguards. After patching, perform a documented risk assessment under 45 CFR 164.308(a)(1)(ii)(A) to decide whether the exposure constitutes a breach requiring notification. Business associates should be especially careful: business associates accounted for about 66% of breached healthcare records in 2024, and Change Healthcare's breach reached 192.7M individuals in the final HHS filing of 2025-07-31. Our HIPAA Security Rule Guide walks through the safeguard requirements this event touches.

Legal

Law firms and legal technology vendors handle client confidences that carry ethical and often contractual protection duties. Node.js powers many case management, e-discovery, and client portal platforms. A flaw that lets one client's connection read another client's responses is the worst-case scenario for a multi-tenant legal SaaS product. If your firm hosts such software, ask the vendor for written confirmation of the patched version and their exposure assessment. If you built it, patch and assess now. Firms working toward SOC 2 should note that the framework's Confidentiality and Security Trust Services Criteria expect exactly this kind of timely vulnerability response, and most SaaS buyers ask for Type I first, then Type II after six to twelve months of evidence.

Financial Services

Fintech applications, payment gateways, and customer-facing banking portals are heavy Node.js users, and they sit squarely in the blast radius of the HTTPS flaw that can leak TLS private keys and other users' requests. PCI DSS applies wherever cardholder data moves, and its 12 control areas presume the confidentiality of encrypted channels. Beyond compliance, the availability risk is real: an unauthenticated client can crash default HTTP/2 servers on the 24.x and 26.x lines, and a separate flaw lets a client permanently hold server memory and file descriptors. For a payments platform, downtime is a direct revenue and reputational event. Financial firms should also confirm their third-party vendors patched, since third-party involvement in breaches rose from 15% to 30% in the Verizon 2025 DBIR.

Your Action Plan for This Month

  1. Inventory every Node.js deployment. Ask application teams and vendors which release lines you run, whether each process accepts HTTP/2, HTTPS, or TLS connections directly, and which versions are in production. End-of-life lines 20.x and 25.x get no fix and are always affected per the project.
  2. Patch to the fixed version for your line: 22.23.5, 24.22.3, or 26.13.1. The advisory lists no workaround for servers that cannot update yet, so updating is the only fix. Prioritize internet-facing systems first.
  3. Identify whether your HTTPS handlers match the vulnerable pattern. The HTTPS flaw requires a handler that calls res.flushHeaders() before the request body fully arrives and later calls res.end() with data, plus a route that echoes or stores a request body. If your code matched that pattern, treat the exposure period seriously.
  4. Decide on key replacement. The advisory does not say whether servers that met the HTTPS flaw's conditions should replace TLS keys or other secrets. Given that the flaw can expose TLS private keys, replacing keys after patching is the prudent default for high-value systems.
  5. Check third-party and vendor software. Many commercial products embed Node.js. Request written confirmation from vendors that their appliances and SaaS applications run a fixed version.
  6. Review your incident response posture against the facts. If evidence suggests data was exposed, follow NIST SP 800-61 Rev. 3 guidance and your framework's requirements: HIPAA breach analysis under 45 CFR 164.404, 164.406, and 164.408, or DFARS 252.204-7012 reporting within 72 hours for covered defense information. Our Cyber Incident Response Plan Guide can help you pressure-test the plan.
  7. Confirm DFARS readiness before you need it. If you are a defense contractor, verify now that you hold the DoD-approved medium assurance certificate required for dibnet.dod.mil reporting, and that your process preserves system images and monitoring data for at least 90 days.
  8. Add unsupported runtimes to your risk register. Any Node.js 20.x or 25.x deployment touching regulated data should be documented, scheduled for migration, and flagged in your SSP or compliance evidence.
  9. Test detection coverage. The crash and resource-exhaustion flaws produce observable symptoms: process termination and sockets stuck in CLOSE_WAIT. Confirm your monitoring would catch either, and consider whether managed detection would close the gap. See our Managed XDR service for what 24/7 detection and response looks like.
  10. Validate with testing. After patching, verify the fixed versions in staging, then confirm in production. Where the stakes justify it, external testing against your internet-facing services is worthwhile; our penetration testing team can assess exposure.

How Petronella Technology Group, Inc. Helps

Petronella Technology Group, Inc. works with regulated businesses and defense contractors that cannot treat a vulnerability like this as a checkbox. Our managed detection and response service provides 24/7 threat monitoring, AI-powered analytics, and human-led investigation, with full coverage operational within 30 days of contract signing. The service scales from 25-endpoint small businesses to 5,000-endpoint enterprises, and its reporting is designed to provide the evidence auditors need for HIPAA, CMMC, PCI DSS, SOC 2, and NIST 800-171 verification. Our AI-augmented hybrid SOC runs on a private AI cluster, which matters for defense industrial base and healthcare clients that cannot send CUI or PHI to a public-cloud SOC. Guardrails are explicit: the AI never closes a ticket on its own, never touches production systems without human authorization, and every action is logged for CMMC and HIPAA audit.

On the compliance side, our compliance practice covers CMMC readiness, HIPAA, SOC 2, and the NIST frameworks, delivered remote-first across all 50 states. Every practitioner on the compliance team holds the CMMC-RP designation, and the firm is a Cyber AB Registered Provider Organization, RPO #1449. A typical CMMC Level 2 readiness engagement runs 12 to 14 weeks for a mid-size contractor, producing an SSP covering all 110 NIST SP 800-171 controls, a live POA&M, and a mock assessment. For organizations that need executive-level security leadership without a $325K to $450K loaded annual CISO cost, our vCISO service delivers a written current-state assessment within 30 days and a 90 to 180 day remediation roadmap. If an incident does occur, our cyber security team includes a Digital Forensics Examiner, and DFARS 252.204-7012 incident reporting support is part of how we serve defense clients.

Related reading

Sources

Frequently Asked Questions

Which Node.js versions fix the HTTP/2 vulnerabilities?

The fixed versions are 22.23.5 on the 22.x line, 24.22.3 on the 24.x line, and 26.13.1 on the 26.x line. End-of-life lines including 20.x and 25.x receive no fix, and the Node.js project says such versions are always affected.

Can the Node.js HTTPS flaw really expose TLS private keys?

Yes. According to the Node.js security advisory, CVE-2026-123864 lets an unauthenticated client read memory belonging to other connections, including TLS private keys and other users' requests. It requires a handler that calls res.flushHeaders() before the request body ends and later calls res.end() with data, and reading the leaked memory requires a route that echoes or stores a request body. Plain HTTP servers built with node:http are not affected.

Do I need to replace my TLS certificates after patching?

The advisory does not say whether servers that met the flaw's conditions should replace their TLS keys or other secrets. Because the flaw can expose TLS private keys, replacing keys for high-value systems after patching is the prudent default, especially where regulated data is involved.

Is there a workaround if we cannot update Node.js yet?

No. The project's security advisory lists updating to the fixed version for each line as the only fix and lists no workaround for servers that cannot update yet. That makes patching, or isolating vulnerable systems from untrusted clients, the realistic options.

Does this vulnerability require a report under DFARS or HIPAA?

It depends on your facts. The advisory reports no attacks using the flaws, so exposure alone may not be an incident. But if evidence suggests data was exposed, defense contractors must report cyber incidents affecting covered defense information to DoD within 72 hours of discovery under DFARS 252.204-7012, and HIPAA covered entities and business associates must conduct a risk assessment and follow the Breach Notification Rule if a breach of protected health information is determined. Document your analysis either way.

How do I know if my applications use vulnerable Node.js code?

Check three things: the release line and version, whether the process accepts HTTP/2, HTTPS, or TLS connections directly rather than behind a proxy, and whether handlers match the vulnerable patterns described in the advisory. The crash flaw needs only a default HTTP/2 server that replies before the request body fully arrives, which the project calls typical behavior, so assume exposure until verified.

If you need help assessing exposure, patching under compliance deadlines, or reporting an incident, call Penny, our AI assistant, at 919-348-4912, or reach Petronella Technology Group, Inc. through our contact form.

Get the 2026 Cybersecurity Survival Guide

Free, practical, and specific to regulated environments. We will email it to you.

No spam. Unsubscribe anytime.

Need help implementing these strategies? Our cybersecurity experts can assess your environment and build a tailored plan. Prefer to write? Send us a message.
Call Penny 919-348-4912

About the Author

Craig Petronella, CEO and Founder of Petronella Technology Group
CEO, Founder & AI Architect, Petronella Technology Group

Craig Petronella founded Petronella Technology Group in 2002 and has spent 30+ years professionally at the intersection of cybersecurity, AI, compliance, and digital forensics. He holds the CMMC Registered Practitioner credential issued by the Cyber AB and leads Petronella as a Cyber AB Registered Provider Organization (RPO #1449). Craig is an NC Licensed Digital Forensics Examiner (License #604180-DFE) and completed MIT Professional Education programs in AI, Blockchain, and Cybersecurity. He also holds CompTIA Security+, CCNA, and Hyperledger certifications.

He is an Amazon #1 Best-Selling Author of 15+ books on cybersecurity and compliance, host of the Encrypted Ambition podcast (95+ episodes on Apple Podcasts, Spotify, and Amazon), and a cybersecurity keynote speaker with 200+ engagements at conferences, law firms, and corporate boardrooms. Craig serves as Contributing Editor for Cybersecurity at NC Triangle Attorney at Law Magazine and is a guest lecturer at NCCU School of Law. He serves as a digital forensics expert witness for law firms on matters involving cybercrime, cryptocurrency fraud, SIM-swap attacks, and data breaches.

Under his leadership, Petronella Technology Group has served hundreds of regulated SMB clients across NC and the southeast since 2002, earned a BBB A+ rating every year since 2003, and been featured as a cybersecurity authority on CBS, ABC, NBC, FOX, and WRAL. The company leverages SOC 2 Type II certified platforms and specializes in AI implementation, managed cybersecurity, CMMC/HIPAA/SOC 2 compliance, and digital forensics for businesses across the United States.

CMMC-RP NC Licensed DFE MIT Certified CompTIA Security+ Expert Witness 15+ Books
Related Service
Protect Your Business with Our Cybersecurity Services

Our proprietary 39-layer ZeroHack cybersecurity stack defends your organization 24/7.

Explore Cybersecurity Services
All Posts Next
Questions about this topic? Talk to our team. Call Penny 919-348-4912 Message us