Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits.
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
Link | Tags |
---|---|
https://nodejs.org/en/blog/vulnerability/january-2021-security-releases/ | patch vendor advisory |
https://hackerone.com/reports/988103 | issue tracking patch exploit third party advisory |
https://www.debian.org/security/2021/dsa-4826 | third party advisory vendor advisory |
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/K4I6MZNC7C7VIDQR267OL4TVCI3ZKAC4/ | vendor advisory |
https://security.gentoo.org/glsa/202101-07 | third party advisory vendor advisory |
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/H472D5HPXN6RRXCNFML3BK5OYC52CXF2/ | vendor advisory |
https://www.oracle.com/security-alerts/cpujan2021.html | third party advisory |
https://security.netapp.com/advisory/ntap-20210212-0003/ | third party advisory |
https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf | third party advisory patch |