{"id":"UBUNTU-CVE-2026-93687","details":"braces through 3.0.3 contains a stack overflow vulnerability in the recursive AST walkers that lack depth guards. Attackers can supply deeply nested brace patterns under the character limit to exhaust the call stack and terminate the Node.js process with an uncaught RangeError.","modified":"2026-09-21T21:40:59.659495847Z","published":"2026-09-21T00:00:00Z","upstream":["CVE-2026-93687"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-93687"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-93687"},{"type":"REPORT","url":"https://github.com/micromatch/braces/issues/70"},{"type":"REPORT","url":"https://github.com/micromatch/braces"},{"type":"REPORT","url":"https://github.com/micromatch/braces/blob/3.0.3/lib/compile.js#L49-L53"},{"type":"REPORT","url":"https://github.com/micromatch/braces/blob/3.0.3/lib/expand.js#L102-L105"},{"type":"REPORT","url":"https://github.com/micromatch/braces/blob/3.0.3/lib/parse.js#L38-L40"},{"type":"REPORT","url":"https://www.vulncheck.com/advisories/braces-through-3.0.3-stack-overflow-via-deeply-nested-patterns"}],"affected":[{"package":{"name":"node-braces","ecosystem":"Ubuntu:18.04:LTS","purl":"pkg:deb/ubuntu/node-braces?arch=source&distro=bionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.2-1","2.0.2-2"],"ecosystem_specific":{"binaries":[{"binary_name":"node-braces","binary_version":"2.0.2-2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93687.json"}},{"package":{"name":"node-braces","ecosystem":"Ubuntu:20.04:LTS","purl":"pkg:deb/ubuntu/node-braces?arch=source&distro=focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.2-2"],"ecosystem_specific":{"binaries":[{"binary_version":"3.0.2-2","binary_name":"node-braces"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93687.json"}},{"package":{"name":"node-braces","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/node-braces?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.2+~3.0.0-1","3.0.2+~3.0.1-1"],"ecosystem_specific":{"binaries":[{"binary_version":"3.0.2+~3.0.1-1","binary_name":"node-braces"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93687.json"}},{"package":{"name":"node-braces","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/node-braces?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.2+~3.0.1-1"],"ecosystem_specific":{"binaries":[{"binary_version":"3.0.2+~3.0.1-1","binary_name":"node-braces"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93687.json"}},{"package":{"name":"node-braces","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/node-braces?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.3+~3.0.5-1"],"ecosystem_specific":{"binaries":[{"binary_name":"node-braces","binary_version":"3.0.3+~3.0.5-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93687.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"},{"type":"Ubuntu","score":"medium"}]}