{"id":"VND-nodejs-june-2026-security-releases","kind":"vulnerability","aliases":[],"related":["CVE-2026-21636","CVE-2026-48615","CVE-2026-48617","CVE-2026-48618","CVE-2026-48619","CVE-2026-48928","CVE-2026-48930","CVE-2026-48931","CVE-2026-48933","CVE-2026-48934","CVE-2026-48935","CVE-2026-48936","CVE-2026-48937"],"title":"Node.js: Thursday, June 18, 2026 Security Releases","description":"Security releases available\nUpdates are now available for the 26.x, 24.x, 22.x Node.js release lines for the\nfollowing issues.\nThis security release includes the following dependency updates to address public vulnerabilities:\nllhttp (9.4.2) on all release lines\nnghttp2 (1.69.0) on all release lines\nopenssl (3.5.7) on all release lines\nundici (8.5.0) on 26.3.1\nundici (7.28.0) on 24.17.0\nundici (6.27.0) on 22.23.0\nNode.js WebCrypto AES Integer Overflow Leads to Remote Process Abort (DoS) (CVE-2026-48933) - (high)\nA flaw in Node.js WebCrypto implementation can crash the process if the input of subtle.encrypt() is a multiple of 2GiB.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to erichen for reporting this vulnerability and thank you Filip Skokan for fixing it.\nNode.js unicode dot separator handling can lead to tls wildcard-depth authentication bypass due to resolver and verifier hostname normalization mismatch (CVE-2026-48618) - (high)\nA flaw in Node.js TLS hostname handling can cause Node.js unicode dot separator handling can lead to tls wildcard-depth authentication bypass due to resolver and verifier hostname normalization mismatch.\nThis can lead to confidentiality impact or bypass of the intended security boundary under affected configurations.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to tmeletlidis for reporting this vulnerability and thank you Matteo Collina for fixing it.\nProxy credentials leaked in ERR_PROXY_TUNNEL error message (CVE-2026-48615) - (medium)\nA flaw in Node.js proxy tunnel error handling could expose proxy credentials in ERR_PROXY_TUNNEL error messages.\nWhen proxy credentials are embedded in the proxy URL, they may be exposed through error handling paths and captured by logs, diagnostics, or other error consumers.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to nssys for reporting this vulnerability and thank you Matteo Collina for fixing it.\nPermission Model Bypass via process.report.writeReport() Path Misvalidation (CVE-2026-48617) - (low)\nA flaw in Node.js Permission Model enforcement allows Bypass via process.report.writeReport() Path Misvalidation.\nThis can lead to confidentiality impact or bypass of the intended security boundary under affected configurations.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to suul for reporting this vulnerability and thank you RafaelGSS for fixing it.\nUnbounded memory growth in node:http2 clients via attacker-controlled ORIGIN frames (CVE-2026-48619) - (medium)\nA flaw in Node.js HTTP/2 client allows a server to send an unlimited number of ORIGIN frames, which could lead to an Out of Memory error on the client.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to kingsd for reporting this vulnerability and thank you Matteo Collina for fixing it.\nHTTP/2 sessions never clean up after GOAWAY on invalid protocol errors (CVE-2026-48937) - (medium)\nA flaw in Node.js HTTP/2 server API can cause servers to keep accepting data even after sending a GOAWAY frame.\nThis vulnerability affects two supported release lines: Node.js 22 and Node.js 24 .\nThank you, Tim Perry, for reporting this vulnerability and for fixing it.\nUppercase sni context matching can lead to mtls authorization bypass due to case-sensitive hostname matching (CVE-2026-48928) - (medium)\nA inconsistency in Node.js hostname matching can cause a trust-policy bypass in multi-context mTLS setups.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to tmeletlidis for reporting this vulnerability and thank you Matteo Collina for fixing it.\nEmbedded-nul hostnames can lead to silent authority rebinding due to c-string truncation in resolver bindings (CVE-2026-48930) - (medium)\nA flaw in Node.js TLS hostname handling can cause Embedded-nul hostnames can lead to silent authority rebinding due to c-string truncation in resolver bindings.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to tmeletlidis for reporting this vulnerability and thank you Matteo Collina for fixing it.\nTLS host identity verification bypass via session reuse with different servername leads to unauthorized connections (CVE-2026-48934) - (medium)\nA flaw in Node.js TLS host verification can cause an attacker to bypass certification validation.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to 3d7omb for reporting this vulnerability and thank you Matteo Collina for fixing it.\nPermission Model bypass via FileHandle.utimes() in the promises API (CVE-2026-48935) - (low)\nA flaw in Node.js Permission API can cause a file metadata to be modified even on a path that was set as read-only with e.g. --allow-fs-read .\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to muhammaddaffa for reporting this vulnerability and thank you RafaelGSS for fixing it.\nUnix domain socket server bypasses --permission network restrictions (incomplete CVE-2026-21636 fix) (CVE-2026-48936) - (low)\nA flaw in Node.js Permission API can cause a local server to be started (via a Unix domain socket), even without the --allow-net permission.\nThis vulnerability affects one supported release line: Node.js 26 .\nThank you, to Vitaly Simonovich for reporting this vulnerability and thank you RafaelGSS for fixing it.\nHTTP Response Queue Poisoning via TOCTOU Race Condition in http.Agent (CVE-2026-48931) - (low)\nA flaw in Node.js HTTP Agent can cause a client to accept as valid a response that is send before the client has sent the request.\nThis vulnerability affects all supported release lines: Node.js 22 , Node.js 24 , and Node.js 26 .\nThank you, to yushengchen for reporting this vulnerability and thank you Matteo Collina for fixing it.\nDownloads and release details\nNode.js v22.23.0\nNode.js v24.17.0\nNode.js v26.3.1\nSummary\nThe Node.js project will release new versions of the 26.x, 24.x, 22.x\nreleases lines on or shortly after, Wednesday, June 17, 2026 in order\nto address one or more security issues, the highest severity is HIGH.\nImpact\nThe highest severity issue fixed in the 26.x release line is HIGH.\nThe highest severity issue fixed in the 24.x release line is HIGH.\nThe highest severity issue fixed in the 22.x release line is HIGH.\nIt&#x27;s important to note that End-of-Life versions are always affected when a security release occurs.\nTo ensure your system&#x27;s security, please use an up-to-date version as outlined in our\nRelease Schedule .\nRelease timing\nReleases are available as of Thursday, June 18, 2026.\nContact and future updates\nThe current Node.js security policy can be found at https://nodejs.org/en/security/ .\nPlease follow the process outlined in https://github.com/nodejs/node/blob/master/SECURITY.md if\nyou wish to report a vulnerability in Node.js.\nSubscribe to the low-volume announcement-only nodejs-sec mailing list at\nhttps://groups.google.com/forum/#!forum/nodejs-sec to stay up to date on security vulnerabilities\nand security-related releases of Node.js and the projects maintained in the nodejs GitHub organization. Previous Wednesday, July 29, 2026 Security Releases Next Developing a minimally HashDoS resistant, yet quickly reversible integer hash for V8","summary":"Node.js 22, 24 and 26 received security releases fixing several flaws, the most severe rated high: a WebCrypto AES input can crash the process, and a Unicode dot handling mismatch enables TLS wildcard-depth authentication bypass. Other fixes cover proxy credential leaks in error messages, HTTP/2 memory growth and permission model bypasses.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"node","fixed":["22.23.0"],"affected":">= 22.0.0, < 22.23.0","ecosystem":"node"},{"name":"node","fixed":["24.17.0"],"affected":">= 24.0.0, < 24.17.0","ecosystem":"node"},{"name":"node","fixed":["26.3.1"],"affected":">= 26.0.0, < 26.3.1","ecosystem":"node"}],"ecosystems":["node"],"tags":["http2","node","node.js","runtime","self-hosted","tls"],"not_affected_if":["unsupported-release-line"],"how_to_check":"- Run `node --version` and compare against `22.23.0`, `24.17.0` or `26.3.1` for your release line.\n- Check whether proxy URLs with embedded credentials are used with `ERR_PROXY_TUNNEL` error logging.\n- Check whether applications rely on `--permission` / `--allow-fs-read` / `--allow-net` restrictions.","fix":"- Upgrade Node.js 22 to `22.23.0`.\n- Upgrade Node.js 24 to `24.17.0`.\n- Upgrade Node.js 26 to `26.3.1`.\n- Note that undici is also bumped to `6.27.0` (22.x), `7.28.0` (24.x) and `8.5.0` (26.x), and OpenSSL to `3.5.7`, llhttp to `9.4.2`, nghttp2 to `1.69.0`.","status":"open","published_at":"2026-06-18T04:00:00+00:00","first_seen_at":"2026-10-23T19:13:00+00:00","triaged_at":"2026-10-25T05:33:24+00:00","updated_at":"2026-10-25T05:33:24+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-10-25T05:33:24Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Node.js 22 to `22.23.0`.\n- Upgrade Node.js 24 to `24.17.0`.\n- Upgrade Node.js 26 to `26.3.1`.\n- Note that undici is also bumped to `6.27.0` (22.x), `7.28.0` (24.x) and `8.5.0` (26.x), and OpenSSL to `3.5.7`, llhttp to `9.4.2`, nghttp2 to `1.69.0`.","reach":"network","title":"Node.js: June 2026 security releases fix TLS, HTTP/2 and permission flaws","impact":"high","summary":"Node.js 22, 24 and 26 received security releases fixing several flaws, the most severe rated high: a WebCrypto AES input can crash the process, and a Unicode dot handling mismatch enables TLS wildcard-depth authentication bypass. Other fixes cover proxy credential leaks in error messages, HTTP/2 memory growth and permission model bypasses.","category":"runtime","nicknames":[],"who_cares":["node.js","self-hosted","tls","http2"],"confidence":0.8,"needs_auth":"unknown","worst_case":"Authentication bypass and process crash from network-reachable inputs","analyst_note":"","how_to_check":"- Run `node --version` and compare against `22.23.0`, `24.17.0` or `26.3.1` for your release line.\n- Check whether proxy URLs with embedded credentials are used with `ERR_PROXY_TUNNEL` error logging.\n- Check whether applications rely on `--permission` / `--allow-fs-read` / `--allow-net` restrictions.","needs_analyst":false,"not_affected_if":["unsupported-release-line"],"who_is_affected":"Any team running a Node.js runtime on the affected release lines is exposed to the listed issues. The TLS hostname and mTLS issues matter most where services verify certificates by hostname or use multiple TLS contexts; the HTTP/2 and proxy issues matter where those features are in use. End-of-life Node.js versions are also affected and are not patched here.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.001008,"input_tokens":6243,"output_tokens":768,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':156C,232C,322C,407C,482C,556C,621C '-48615':323C '-48617':408C '-48618':233C '-48619':483C '-48928':622C '-48933':157C '-48937':557C '1.69.0':121C '18':4A '2026':5A,12A '22':28B,93C,187C,290C,377C,447C,522C,587C,651C '22.23.0':143C '24':29B,91C,189C,292C,379C,449C,524C,590C,653C '24.17.0':139C '26':31B,89C,192C,295C,382C,452C,527C,656C '26.3.1':135C '2gib':178C '3.5.7':127C '6.27.0':141C '7.28.0':137C '8.5.0':133C '9.4.2':115C 'abort':153C 'accept':571C 'address':111C 'ae':45B,146C 'affect':181C,280C,284C,371C,437C,441C,516C,581C,645C 'allow':417C,491C 'api':565C 'attack':477C 'attacker-control':476C 'authent':62B,221C,256C 'author':611C,681C 'avail':82C,86C 'bind':691C 'boundari':278C,435C 'bypass':63B,79B,222C,257C,273C,401C,418C,430C,612C,636C 'c':686C 'c-string':685C 'captur':361C 'case':616C 'case-sensit':615C 'caus':243C,567C,631C 'clean':547C 'client':474C,490C,513C 'collina':308C,395C,540C,669C 'confidenti':270C,427C 'configur':281C,438C 'consum':368C 'context':605C,640C 'control':478C 'could':333C,503C 'cover':66B 'crash':48B,166C 'credenti':68B,313C,336C,345C 'cve':155C,231C,321C,406C,481C,555C,620C 'data':572C 'depend':108C 'depth':61B,220C,255C 'diagnost':364C 'dos':154C 'dot':54B,211C,246C 'due':223C,258C,613C,683C 'embed':347C,674C 'embedded-nul':673C 'enabl':57B 'enforc':416C 'erichen':196C 'err':316C,338C 'error':71B,319C,331C,341C,357C,367C,510C,554C 'even':573C 'expos':334C,355C 'filip':204C 'fix':35B,65B,207C,310C,397C,466C,542C,601C,671C 'flaw':37B,160C,236C,326C,411C,486C,560C 'follow':100C,107C 'frame':480C,501C,578C 'goaway':550C,577C 'growth':75B,470C 'handl':55B,213C,241C,248C,332C,358C 'high':42B,158C,234C 'host':25B 'hostnam':228C,240C,263C,618C,628C,676C 'http/2':73B,489C,544C,563C 'http2':19B,473C 'impact':271C,428C 'implement':164C 'includ':105C 'inconsist':625C 'input':46B,171C 'integ':147C 'intend':276C,433C 'invalid':552C 'issu':101C 'june':3A,11A 'keep':570C 'kingsd':531C 'lead':149C,215C,250C,268C,425C,504C,608C,678C 'leak':69B,314C 'line':97C,119C,125C,131C,185C,288C,375C,445C,520C,585C,649C 'llhttp':114C 'log':363C 'low':409C 'match':606C,619C,629C 'matteo':307C,394C,539C,668C 'may':353C 'medium':324C,484C,558C,623C 'memori':74B,469C,509C 'messag':72B,320C,342C 'mismatch':56B,230C,265C 'misvalid':405C,422C 'model':78B,400C,415C 'mtls':610C,641C 'multi':639C 'multi-context':638C 'multipl':176C 'never':546C 'nghttp2':120C 'node':16A,17A,18A,20B,472C 'node.js':1A,21B,27B,95C,144C,162C,186C,188C,191C,209C,238C,244C,289C,291C,294C,328C,376C,378C,381C,413C,446C,448C,451C,488C,521C,523C,526C,562C,586C,589C,627C,650C,652C,655C 'nodejs':10A 'normal':229C,264C 'nssys':386C 'nul':675C 'number':498C 'openssl':126C 'origin':479C,500C 'overflow':148C 'path':359C,404C,421C 'permiss':77B,399C,414C 'perri':594C 'polici':635C 'process':50B,152C,168C 'process.report.writereport':403C,420C 'protocol':553C 'proxi':67B,312C,317C,329C,335C,339C,344C,350C 'public':112C 'rafaelgss':464C 'rate':41B 'rebind':682C 'receiv':32B 'releas':7A,34B,81C,96C,104C,118C,124C,130C,184C,287C,374C,444C,519C,584C,648C 'releases':15A 'remot':151C 'report':198C,301C,388C,458C,533C,596C,662C 'resolv':225C,260C,690C 'runtim':22B 'secur':6A,33B,80C,103C,277C,434C 'security':14A 'security-releases':13A 'self':24B 'self-host':23B 'send':495C,575C 'sensit':617C 'separ':212C,247C 'server':493C,564C,568C 'session':545C 'setup':642C 'sever':36B,40B 'silent':680C 'skokan':205C 'sni':604C 'string':687C 'subtle.encrypt':173C 'support':183C,286C,373C,443C,518C,583C,647C 'suul':456C 'thank':193C,202C,296C,305C,383C,392C,453C,462C,528C,537C,591C,657C,666C 'thursday':2A 'tim':593C 'tls':26B,58B,217C,239C,252C 'tmeletlidi':299C,660C 'truncat':688C 'trust':634C 'trust-polici':633C 'tunnel':318C,330C,340C 'two':582C 'unbound':468C 'undici':132C,136C,140C 'unicod':53B,210C,245C 'unlimit':497C 'updat':83C,109C 'uppercas':603C 'url':351C 'verifi':227C,262C 'via':402C,419C,475C 'vnd':9A 'vnd-nodejs-june':8A 'vulner':113C,180C,200C,283C,303C,370C,390C,440C,460C,515C,535C,580C,598C,644C,664C 'webcrypto':44B,145C,163C 'wildcard':60B,219C,254C 'wildcard-depth':59B,218C,253C 'x':90C,92C,94C","nicknames":[],"mitigations":[],"who_affected":"Any team running a Node.js runtime on the affected release lines is exposed to the listed issues. The TLS hostname and mTLS issues matter most where services verify certificates by hostname or use multiple TLS contexts; the HTTP/2 and proxy issues matter where those features are in use. End-of-life Node.js versions are also affected and are not patched here.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-06-18T04:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nodejs","external_id":"june-2026-security-releases","url":"https://nodejs.org/en/blog/vulnerability/june-2026-security-releases","severity":"high","published_at":"2026-06-18T04:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-23T19:13:00+00:00","fetched_at":"2026-10-25T22:38:03+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}