Skip to content

Bump @xmldom/xmldom from 0.8.11 to 0.8.13 - #16

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/xmldom/xmldom-0.8.13
Open

Bump @xmldom/xmldom from 0.8.11 to 0.8.13#16
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/xmldom/xmldom-0.8.13

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 23, 2026

Copy link
Copy Markdown
Contributor

Bumps @xmldom/xmldom from 0.8.11 to 0.8.13.

Release notes

Sourced from @​xmldom/xmldom's releases.

0.8.13

Commits

Fixed

  • Security: XMLSerializer.serializeToString() (and Node.toString(), NodeList.toString()) now accept a requireWellFormed option (fourth argument, after isHtml and nodeFilter). When { requireWellFormed: true } is passed, the serializer throws InvalidStateError for injection-prone node content, preventing XML injection via attacker-controlled node data. GHSA-j759-j44w-7fr8 GHSA-x6wf-f3px-wcqx GHSA-f6ww-3ggp-fr8h
    • Comment: throws when data contains -->
    • ProcessingInstruction: throws when data contains ?>
    • DocumentType: throws when publicId fails PubidLiteral, systemId fails SystemLiteral, or internalSubset contains ]>
  • Security: DOM traversal operations (XMLSerializer.serializeToString(), Node.prototype.normalize(), Node.prototype.cloneNode(true), Document.prototype.importNode(node, true), node.textContent getter, getElementsByTagName() / getElementsByTagNameNS() / getElementsByClassName() / getElementById()) are now iterative. Previously, deeply nested DOM trees would exhaust the JavaScript call stack and throw an unrecoverable RangeError. GHSA-2v35-w6hq-6mfw

Thank you, @​Jvr2022, @​praveen-kv, @​TharVid, @​decsecre583, @​tlsbollei, @​KarimTantawey, for your contributions

0.8.12

Commits

Fixed

Code that passes a string containing "]]>" to createCDATASection and relied on the previously unsafe behavior will now receive InvalidCharacterError. Use a mutation method such as appendData if you intentionally need "]]>" in a CDATASection node's data.

Thank you, @​thesmartshadow, @​stevenobiajulu, for your contributions

xmldom/xmldom#357

Changelog

Sourced from @​xmldom/xmldom's changelog.

0.8.13

Fixed

  • Security: XMLSerializer.serializeToString() (and Node.toString(), NodeList.toString()) now accept a requireWellFormed option (fourth argument, after isHtml and nodeFilter). When { requireWellFormed: true } is passed, the serializer throws InvalidStateError for injection-prone node content, preventing XML injection via attacker-controlled node data. GHSA-j759-j44w-7fr8 GHSA-x6wf-f3px-wcqx GHSA-f6ww-3ggp-fr8h
    • Comment: throws when data contains -->
    • ProcessingInstruction: throws when data contains ?>
    • DocumentType: throws when publicId fails PubidLiteral, systemId fails SystemLiteral, or internalSubset contains ]>
  • Security: DOM traversal operations (XMLSerializer.serializeToString(), Node.prototype.normalize(), Node.prototype.cloneNode(true), Document.prototype.importNode(node, true), node.textContent getter, getElementsByTagName() / getElementsByTagNameNS() / getElementsByClassName() / getElementById()) are now iterative. Previously, deeply nested DOM trees would exhaust the JavaScript call stack and throw an unrecoverable RangeError. GHSA-2v35-w6hq-6mfw

Thank you, @​Jvr2022, @​praveen-kv, @​TharVid, @​decsecre583, @​tlsbollei, @​KarimTantawey, for your contributions

0.9.9

Added

Fixed

Code that passes a string containing "]]>" to createCDATASection and relied on the previously unsafe behavior will now receive InvalidCharacterError. Use a mutation method such as appendData if you intentionally need "]]>" in a CDATASection node's data.

Chore

  • updated dependencies

Thank you, @​stevenobiajulu, @​yoshi389111, @​thesmartshadow, for your contributions

0.8.12

Fixed

... (truncated)

Commits
  • e5c1480 0.8.13
  • 9611e20 style: drop unused import in test file
  • dc4dff3 docs: add 0.8.13 changelog entry
  • 842fa38 fix: prevent stack overflow in normalize (GHSA-2v35-w6hq-6mfw)
  • aeff69f test: add normalize behavioral coverage to node.test.js
  • cbdb0d7 fix: make walkDOM iterative to prevent stack overflow (GHSA-2v35-w6hq-6mfw)
  • 0b543d3 test: assert namespace declarations are isolated between siblings in serializ...
  • c007c51 refactor: migrate serializeToString to walkDOM
  • 2bb3899 test: add serializeToString coverage for uncovered branches
  • e69f38d refactor: migrate importNode to walkDOM
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by karfau, a new releaser for @​xmldom/xmldom since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.8.11 to 0.8.13.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](xmldom/xmldom@0.8.11...0.8.13)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-version: 0.8.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Jun 23, 2026
@dependabot
dependabot Bot requested a review from Amateur-God as a code owner June 23, 2026 19:16
@dependabot dependabot Bot added the javascript Pull requests that update javascript code label Jun 23, 2026
@atlas-commons-bot

atlas-commons-bot Bot commented Jun 23, 2026

Copy link
Copy Markdown

Atlas Commons PR review

Requirement Status
DCO sign-off pass
Required checks warn
Summary filled fail
Checklist pass
Linked issue warn

Overall: fail

  • All commits include DCO sign-off.
  • Required checks skipped.
  • Summary section is empty or still has placeholder text.
  • All checklist items ticked or none present.
  • No linked issue (advisory).

View PR #16 · Atlas-Commons/StreamBooru

@atlas-commons-bot

atlas-commons-bot Bot commented Jun 23, 2026

Copy link
Copy Markdown

Atlas Commons code review (LLM)

Summary

This PR bumps @xmldom/xmldom from 0.8.11 → 0.8.13 in package-lock.json only. The package is a transitive dev dependency (@capacitor/cliplist@3.1.0 and electron-builderplist@3.1.0); it is not listed in package.json and is not imported by application code. Runtime XML handling (e.g. Gelbooru feeds in src/adapters/gelbooru.js and renderer/js/platform.js) uses regex or the browser DOMParser, not @xmldom/xmldom. The upgrade addresses five high-severity npm advisories (CDATA injection, stack-overflow DoS, and comment/PI/DOCTYPE serialization issues) and is appropriate for a tooling-only dependency.

Potential issues

  1. Build tooling not exercised in CI. Required checks were skipped for this PR. Because plist uses @xmldom/xmldom's DOMParser during Capacitor sync and Electron packaging (Info.plist / entitlements), a regression would surface at build time, not in the existing smoke tests (test:tags, test:server). Confirm at least one Android sync and one Electron pack step before relying on this in release pipelines.

  2. 0.8.12 behavior change for CDATA creation. createCDATASection now throws InvalidCharacterError when data contains ]]>. plist builds XML via xmlbuilder, not xmldom serialization, and its parser ignores CDATA nodes, so this is unlikely to affect StreamBooru. It could matter only if a future dependency starts constructing CDATA through xmldom directly.

  3. Partial mitigation unless requireWellFormed is used. Several 0.8.13 injection fixes apply only when callers pass { requireWellFormed: true } to XMLSerializer.serializeToString(). Default serialization can still emit unsafe node content. StreamBooru does not call the serializer today; plist only parses with DOMParser. Residual risk is low for this repo, but the advisories are not fully closed for all call patterns upstream.

  4. Lockfile-only bump leaves no direct version pin. The resolved version lives entirely under node_modules/@xmldom/xmldom in the lockfile. A future npm install that regenerates the lockfile without this entry could drift back if plist's ^0.8.8 range resolves differently. That is normal npm behavior, not a blocker, but worth knowing for lockfile hygiene.

Suggestions

  1. Run a quick build smoke test after merge. From the repo root, exercise the paths that pull in plist:
npm ci
npm run android:sync
npm run pack

Any xmldom regression would likely appear during plist read/write in these steps.

  1. Re-run npm audit post-merge. With 0.8.13, xmldom-related findings should drop to zero. Other unrelated advisories (e.g. electron, ajv) will remain and are out of scope for this PR.

  2. No application code changes needed. Given current usage (plistDOMParser only), there is no need to adopt requireWellFormed or change Gelbooru XML parsing. Revisit only if StreamBooru later adds direct @xmldom/xmldom usage or processes untrusted XML through build tooling.

Overall assessment

Low-risk, high-value dependency bump. The diff is minimal and correctly scoped to package-lock.json. @xmldom/xmldom is dev-only build tooling with no runtime exposure in this codebase, and the upgrade closes multiple reported CVEs. The main gap is verification: merge is reasonable once a maintainer confirms Capacitor sync and/or Electron packaging still succeed, since those are the only realistic integration points for this dependency.


Advisory review only — not a merge approval.

View PR #16 · Atlas-Commons/StreamBooru

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants