chore(deps): update dependency @xmldom/xmldom@<0.8.15 to ^0.9.0 - #9549
chore(deps): update dependency @xmldom/xmldom@<0.8.15 to ^0.9.0#9549renovate[bot] wants to merge 1 commit into
Conversation
COMPARE TO
|
| Name | Diff |
|---|---|
| package.json | 📉 -1 Bytes |
| pnpm-lock.yaml | 📉 -576 Bytes |
There was a problem hiding this comment.
🟢 Approval recommended
The change is a straightforward dependency override/lockfile update and the new @xmldom/xmldom engine requirement (>=14.6) is compatible with the repo’s Node engine (^22.14.0).
Pull request overview
Updates the repo’s pnpm override to bump @xmldom/xmldom from ^0.8.15 to ^0.9.0 (resolving to 0.9.12 in the lockfile), primarily to pick up upstream security/performance fixes in XML parsing/serialization.
Changes:
- Updated the root
pnpm.overridesentry for@xmldom/xmldom@<0.8.15to^0.9.0. - Regenerated
pnpm-lock.yamlto reflect@xmldom/xmldom@0.9.12across affected transitive dependents.
File summaries
| File | Description |
|---|---|
| package.json | Bumps the pnpm override for @xmldom/xmldom to ^0.9.0. |
| pnpm-lock.yaml | Updates the resolved @xmldom/xmldom version (and dependent snapshots) accordingly. |
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
- Files reviewed: 1/2 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
ecf7e1b to
8f2cbb4
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The change is a straightforward dependency override/lockfile update and is compatible with the repo’s Node engine requirement.
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
- Files reviewed: 1/2 changed files
- Comments generated: 0 new
- Review effort level: Lite
8f2cbb4 to
0b7dcee
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
Raise the override lower bound to a patched release such as ^0.9.12.
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
Suppressed comments (1)
package.json:51
- This override is intended to keep transitive consumers off vulnerable xmldom releases, but
^0.9.0also permits 0.9.0–0.9.11. The security fixes covered by this update land in later 0.9.x releases, so a future lockfile refresh could select a vulnerable version despite the current lock resolving 0.9.12. Set the lower bound to^0.9.12(or another known patched release).
"@xmldom/xmldom@<0.8.15": "^0.9.0",
- Files reviewed: 1/2 changed files
- Comments generated: 0 new
- Review effort level: Lite
0b7dcee to
88bf838
Compare
There was a problem hiding this comment.
🟢 Approval recommended
The change is a straightforward dependency override bump with corresponding lockfile updates, and the repo’s Node engine requirement is already well above xmldom@0.9.x’s minimum.
Review details
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
- Files reviewed: 1/2 changed files
- Comments generated: 0 new
- Review effort level: Lite
This PR contains the following updates:
^0.8.15→^0.9.0Release Notes
xmldom/xmldom (@xmldom/xmldom@<0.8.15)
v0.9.12Compare Source
Fixed
DOMParser.parseFromStringwith default options. Serialized output is byte-identical.GHSA-965w-775f-mr7gNamedNodeMapparse-time dedup path uses a null-prototype membership index, so a well-formed document with a hostile number of duplicate attributes can no longer wedge the parse. Attribute order and duplicate resolution (last value wins, first position kept) are byte-identical, preserving the XML no-duplicate-attributes well-formedness constraint.GHSA-8344-3jmq-59r6GHSA-6mj3-qw4j-hgrw<, andNode.prototype.normalize()merges adjacent text nodes in O(K) instead of O(K²) (also reachable programmatically), pernormalize()in the WHATWG DOM spec. DOM output is unchanged; only the reported error text differs.GHSA-93r5-fhx6-vmg9XMLSerializer.serializeToString()under{ requireWellFormed: true }now rejects a DocTypenamethat is not a valid XMLName, throwingInvalidStateError— matching the siblingpublicId/systemId/internalSubsetchecks and preventing XML injection viaDocumentType.name.GHSA-27p8-2357-5qqvXMLSerializer.serializeToString()under{ requireWellFormed: true }now validates a processing-instruction target as an XMLNCNameand rejects a case-insensitivexml, throwingInvalidStateError— preventing PI-target injection via>,?, or whitespace.GHSA-c7q8-3ch8-vqpvDocument.createEntityReference()now rejects an invalid XMLNameat creation, andXMLSerializer.serializeToString()under{ requireWellFormed: true }validates anEntityReferencenodeNameas an XMLName, throwingInvalidStateError— preventing XML injection via an entity-reference name.GHSA-6gmq-8vp8-gcm6requireWellFormedserializer's element- and attribute-name validators no longer treat an interior line terminator as satisfying the name anchors, so a name containing a line terminator is rejected withInvalidStateError— closing a bypass of the XMLQNamecheck.GHSA-jxjr-3g7g-3944requireWellFormedserializer's DocTypepublicId/systemIdvalidators no longer treat an interior line terminator as satisfying the anchor, so an identifier containing an ECMAScript line terminator is rejected withInvalidStateError— closing a bypass of the XMLPubidLiteral/SystemLiteralcheck.GHSA-vr34-hp96-76ppcreateElementNS(),createAttributeNS(),createDocumentType(), andcreateAttribute()now reject a name containing a line terminator withInvalidCharacterError, because name validation applies to the whole string — closing a creation-time bypass of the XMLName/QNameproduction on the default serialization path.GHSA-3px3-54cx-rmw9errorin XML, awarningin HTML) instead of accepting it silently, per the XMLETagproduction; parsing recovers to the byte-identical DOM. Consumers that want strict rejection can escalate the reportederrorto fatal via the parser'sonErrorhandler.GHSA-6h8r-xr42-gp59DOMExceptions raised during parsing are now reported as afatalError, and the originating error is preserved as thecauseon the resultingParseError.Chore
Thank you,
@ericchiang,
@KarimTantawey,
@bhaswanthc,
@arpitjain099,
@Paranoidgrinch,
for your contributions
v0.9.11Compare Source
Fixed
XMLSerializer.serializeToString()now also rejects invalid element and attribute names when{ requireWellFormed: true }is passed, throwingInvalidStateErrorfor a name that is not a valid XMLQName(this covers the namespace prefix, which surfaces in the element qualified name or in a synthesizedxmlns:declaration). This prevents XML injection viacreateElement()/setAttribute(), extending the existingrequireWellFormedchecks to the serialized name set.GHSA-w2rr-34g9-rvrjGHSA-4w3w-2rp5-g8jm<?…with no closing?>), preventing a denial-of-service (ReDoS) reachable fromDOMParser.parseFromStringwith default options.GHSA-g53g-w8rj-fmg7CharacterDatanodeValueanddataare now kept in sync#990Chore
Thank you,
@bhaswanthc,
@jmestwa-coder,
@stevenobiajulu,
for your contributions
v0.9.10Compare Source
Fixed
XMLSerializer.serializeToString()(andNode.toString(),NodeList.toString()) now accept arequireWellFormedoption. When{ requireWellFormed: true }is passed, the serializer throwsInvalidStateErrorfor injection-prone node content, preventing XML injection via attacker-controlled node data.GHSA-j759-j44w-7fr8GHSA-x6wf-f3px-wcqxGHSA-f6ww-3ggp-fr8hdatacontains--anywhere, ends with-, or contains characters outside the XMLCharproduction:or matchesxml(case-insensitive), ordatacontains characters outside the XMLCharproduction or contains?>publicIdfailsPubidLiteral,systemIdfailsSystemLiteral, orinternalSubsetcontains]>XMLSerializer.serializeToString(),Node.prototype.normalize(),Node.prototype.cloneNode(true),Document.prototype.importNode(node, true),node.textContentgetter,getElementsByTagName()/getElementsByTagNameNS()/getElementsByClassName()/getElementById(),Node.prototype.isEqualNode()) are now iterative. Previously, deeply nested DOM trees would exhaust the JavaScript call stack and throw an unrecoverableRangeError.GHSA-2v35-w6hq-6mfwisEqualNodenow correctly returnsfalsefor CDATASection nodes with differentdataDeprecated
splitCDATASectionsserializer option is deprecated and will be removed in the next breaking release. The automatic splitting of"]]>"inCDATASectiondata was introduced as a workaround; userequireWellFormed: trueor ensureCDATASectiondata does not contain"]]>"before serialization.Chore
Thank you,
@Jvr2022,
@praveen-kv,
@TharVid,
@decsecre583,
@tlsbollei,
@KarimTantawey,
for your contributions
v0.9.9Compare Source
Added
ParentNode.childrengetter#960/#410Fixed
createCDATASectionnow throwsInvalidCharacterErrorwhendatacontains"]]>", as required by the WHATWG DOM spec.GHSA-wh4c-j3r5-mjhpXMLSerializernow splits CDATASection nodes whose data contains"]]>"into adjacent CDATA sections at serialization time, preventing XML injection via mutation methods (appendData,replaceData,.data =,.textContent =).GHSA-wh4c-j3r5-mjhpNode.contains#931Code that passes a string containing
"]]>"tocreateCDATASectionand relied on the previously unsafe behavior will now receiveInvalidCharacterError. Use a mutation method such asappendDataif you intentionally need"]]>"in a CDATASection node's data.Chore
Thank you,
@stevenobiajulu,
@yoshi389111,
@thesmartshadow,
for your contributions
v0.9.8Compare Source
Fixed
#839/#838#847/#838Chore
#845Thank you,
@kboshold,
@Ponynjaa,
for your contributions.
v0.9.7Compare Source
Added
hasAttributes#804Fixed
#802/#803#817/#819Performance
DOM.compareDocumentPosition#805Chore
Thank you,
@zorkow,
@Ponynjaa,
@WesselKroos,
for your contributions.
v0.9.6Compare Source
Fixed
#790/#794/#797Chore
#792Thank you, @eglitise, for your contributions.
v0.9.5Compare Source
Fixed
#763/#766Thank you,
@mureinik,
for your contributions.
v0.9.4Compare Source
Fixed
#748/#760warning(#759)#754/#759Docs
#758Thank you,
@luffynando,
@mattiasw,
@JoinerDev,
for your contributions.
v0.9.3Compare Source
Fixed
NodeandProcessingInstructiontypes#725/#726getElements*methods returnLiveNodeList<Element>#731/#734Nodeprops#728, triggered by unclosed#724Docs
Chore
Thank you,
@Ponynjaa,
@ayZagen,
@sserdyuk,
@wydengyre,
@mykola-mokhnach,
@benkroeger,
for your contributions.
v0.9.2Compare Source
Feature
Element.getElementsByClassName#722Fixed
Document.documentElementandElement.tagName#721#720Thank you, @censujiang, @Mathias-S, for your contributions
v0.9.1Compare Source
Fixed
XMLSerializer.serializeToString()(andNode.toString(),NodeList.toString()) now accept arequireWellFormedoption. When{ requireWellFormed: true }is passed, the serializer throwsInvalidStateErrorfor injection-prone node content, preventing XML injection via attacker-controlled node data.GHSA-j759-j44w-7fr8GHSA-x6wf-f3px-wcqxGHSA-f6ww-3ggp-fr8hdatacontains--anywhere, ends with-, or contains characters outside the XMLCharproduction:or matchesxml(case-insensitive), ordatacontains characters outside the XMLCharproduction or contains?>publicIdfailsPubidLiteral,systemIdfailsSystemLiteral, orinternalSubsetcontains]>XMLSerializer.serializeToString(),Node.prototype.normalize(),Node.prototype.cloneNode(true),Document.prototype.importNode(node, true),node.textContentgetter,getElementsByTagName()/getElementsByTagNameNS()/getElementsByClassName()/getElementById(),Node.prototype.isEqualNode()) are now iterative. Previously, deeply nested DOM trees would exhaust the JavaScript call stack and throw an unrecoverableRangeError.GHSA-2v35-w6hq-6mfwisEqualNodenow correctly returnsfalsefor CDATASection nodes with differentdataDeprecated
splitCDATASectionsserializer option is deprecated and will be removed in the next breaking release. The automatic splitting of"]]>"inCDATASectiondata was introduced as a workaround; userequireWellFormed: trueor ensureCDATASectiondata does not contain"]]>"before serialization.Chore
Thank you,
@Jvr2022,
@praveen-kv,
@TharVid,
@decsecre583,
@tlsbollei,
@KarimTantawey,
for your contributions
v0.9.0Compare Source
Features
#637/#40#634/#633Fixed
#692#554#550Other
#556#697#546#524#566#644#511Thank you, @kboshold, @edi9999, @apupier,
@shunkica, @homer0, @jhauga,
@UdayKharatmol, for your contributions
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.