Accepting arbitrary Subject Alternative Name (SAN) types, unless a PKI is specifically defined to use a particular SAN type, can result in bypassing name-constrained intermediates. Node.js < 12.22.9, < 14.18.3, < 16.13.2, and < 17.3.1 was accepting URI SAN types, which PKIs are often not defined to use. Additionally, when a protocol allows URI SANs, Node.js did not match the URI correctly.Versions of Node.js with the fix for this disable the URI SAN type when checking a certificate against a hostname. This behavior can be reverted through the --security-revert command-line option.
{
"versions": [
{
"introduced": "0"
},
{
"last_affected": "20.3.5"
},
{
"introduced": "0"
},
{
"last_affected": "21.3.1"
},
{
"introduced": "0"
},
{
"last_affected": "22.0.0.2"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"last_affected": "8.0.28"
},
{
"introduced": "0"
},
{
"last_affected": "8.0.29"
},
{
"introduced": "0"
},
{
"last_affected": "5.7.37"
},
{
"introduced": "8.0.0"
},
{
"last_affected": "8.0.28"
},
{
"introduced": "0"
},
{
"last_affected": "8.0.28"
},
{
"introduced": "0"
},
{
"last_affected": "8.0.29"
}
]
}{
"versions": [
{
"introduced": "0"
},
{
"fixed": "12.22.9"
},
{
"introduced": "14.0.0"
},
{
"fixed": "14.18.3"
},
{
"introduced": "16.0.0"
},
{
"fixed": "16.13.2"
},
{
"introduced": "17.0.0"
},
{
"fixed": "17.3.1"
}
]
}