{"id":"GHSA-crh6-fp67-6883","summary":"xmldom allows multiple root nodes in a DOM","details":"### Impact\nxmldom parses XML that is not well-formed because it contains multiple top level elements, and adds all root nodes to the `childNodes` collection of the `Document`, without reporting any error or throwing.\nThis breaks the assumption that there is only a single root node in the tree, which led to https://nvd.nist.gov/vuln/detail/CVE-2022-39299 and is a potential issue for dependents.\n\n### Patches\nUpdate to `@xmldom/xmldom@~0.7.7`, `@xmldom/xmldom@~0.8.4` (dist-tag `latest`) or `@xmldom/xmldom@\u003e=0.9.0-beta.4` (dist-tag `next`).\n\n### Workarounds\nOne of the following approaches might help, depending on your use case:\n- Instead of searching for elements in the whole DOM, only search in the `documentElement`.\n- Reject a document with a document that has more then 1 `childNode`.\n\n### References\n- https://nvd.nist.gov/vuln/detail/CVE-2022-39299\n- https://github.com/jindw/xmldom/issues/150\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Email us at security@xmldom.org\n","aliases":["CVE-2022-39353"],"modified":"2026-07-17T21:16:24.969843644Z","published":"2022-11-01T17:29:11Z","database_specific":{"nvd_published_at":"2022-11-02T17:15:00Z","cwe_ids":["CWE-1288","CWE-20"],"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2022-11-01T17:29:11Z"},"references":[{"type":"WEB","url":"https://github.com/xmldom/xmldom/security/advisories/GHSA-crh6-fp67-6883"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-39353"},{"type":"WEB","url":"https://github.com/jindw/xmldom/issues/150"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/commit/52a708360c35aa160fcca8621720d71fd0f95f1a"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/commit/7ff7c10ab2961703ac1752e95b4ff60ee4ee6643"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/commit/c02f786216bed70825f9a351c65e61500f51e931"},{"type":"PACKAGE","url":"https://github.com/xmldom/xmldom"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/releases/tag/0.7.7"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/releases/tag/0.8.4"},{"type":"WEB","url":"https://github.com/xmldom/xmldom/releases/tag/0.9.0-beta.4"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2023/01/msg00000.html"}],"affected":[{"package":{"name":"xmldom","ecosystem":"npm","purl":"pkg:npm/xmldom"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"0.6.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/11/GHSA-crh6-fp67-6883/GHSA-crh6-fp67-6883.json"}},{"package":{"name":"@xmldom/xmldom","ecosystem":"npm","purl":"pkg:npm/%40xmldom/xmldom"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.7.7"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/11/GHSA-crh6-fp67-6883/GHSA-crh6-fp67-6883.json"}},{"package":{"name":"@xmldom/xmldom","ecosystem":"npm","purl":"pkg:npm/%40xmldom/xmldom"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.8.0"},{"fixed":"0.8.4"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/11/GHSA-crh6-fp67-6883/GHSA-crh6-fp67-6883.json"}},{"package":{"name":"@xmldom/xmldom","ecosystem":"npm","purl":"pkg:npm/%40xmldom/xmldom"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.9.0-beta.1"},{"fixed":"0.9.0-beta.4"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/11/GHSA-crh6-fp67-6883/GHSA-crh6-fp67-6883.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:H/I:H/A:H"}]}