Repository navigation
chore(deps): update dependency js-yaml@4 to v5 [security] - autoclosed - #2028
renovate[bot] wants to merge 1 commit into
Conversation
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit debd3ab. Configure here.
| brace-expansion@5: "^5.0.7" | ||
| js-yaml@3: "^3.15.1" | ||
| js-yaml@4: "^4.3.1" | ||
| js-yaml@4: "^5.4.2" |
There was a problem hiding this comment.
Incompatible js-yaml major override
High Severity
The js-yaml@4 override now resolves to ^5.4.2, a major that drops the default export and changes load() (empty input throws; default schema is YAML 1.2 CORE_SCHEMA without merge). Transitive v4 consumers @changesets/parse and cosmiconfig still call the v4 API, so changeset parsing and YAML config loading can fail at runtime.
Reviewed by Cursor Bugbot for commit debd3ab. Configure here.
debd3ab to
a094b76
Compare


This PR contains the following updates:
^4.3.1→^5.4.2Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources
CVE-2026-84375 / GHSA-2883-xcg3-v3hh
More information
Details
Summary
maxTotalMergeKeysdoes not count empty mappings. An attacker can repeatedly merge a large sequence of them and consume significant CPU without reaching the configured limit.Example
For every target, the loader iterates all
Nelements ofarr. This results inO(N * K)work whiletotalMergeKeysremains unchanged.PoC
Observed results:
Impact
An attacker can submit a relatively small YAML document that causes prolonged CPU consumption despite the default
maxTotalMergeKeyslimit.Fix
Count each merge-source mapping as one budget unit, in addition to counting its keys.
Difference with v5
In v3 & v4, merge is enabled by default. So, the severity score is higher.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
nodeca/js-yaml (js-yaml@4)
v5.4.2Compare Source
Fixed
forceQuotesno longer quotes non-string scalars, #798.v5.4.1Compare Source
v5.4.0Compare Source
Added
scalarStyleRulesdumper option to customize string formatting.See Scalar styling for details.
Changed
and collection nodes now use
SCALAR_STYLEandCOLLECTION_STYLEvalues;explicit tags use the separate
taggedproperty. Alias nodes now containonly
kindandanchor. This only affects code that directly constructs oredits AST nodes.
sortKeysoption was rewritten using AST mutation to avoidside effects.
loaded values; in particular, whitespace-only strings are now double-quoted.
Fixed
quoteFlowKeysandflowSkipColonSpace,including alias and property-only keys, #786.
1024-character simple-key limit.
needed to preserve trailing newlines.
v5.3.0Compare Source
This release focuses on reworking the documentation and making small
architectural improvements before moving forward.
Added
DUMP_SCHEMA, the default schema used by the dumper.YAMLException.throwAt()for throwing an error at a source position.Changed
EVENT_ID,SCALAR_STYLE,COLLECTION_STYLE, andCHOMPING_MODE, along with their value types. The oldexports are still preserved, but deprecated.
identifymandatory for custom tag definitions. Useidentify: () => falsefor load-only tags.Deprecated
Removed
MERGE_KEYexport (not used anymore after last fixes).Fixed
<<sequence items at merge time, so aliased merge sources arechecked too.
<<outside of a mapping key as the plain string'<<', matchingv4, instead of leaking an internal symbol into the result.
v5.2.3Compare Source
Fixed
!!timestampyears 0000-0099 correctly, #775.unpaired mapping event streams, #784.
parsed AST through
present();dump()and loading are unaffected, #780.v5.2.2Compare Source
Fixed
Security
v5.2.1Compare Source
Fixed
Mapsupport to !!omap (should work whenrealMapTagused)Security
addItem. Regression from v5(usually not critical, because YAML11_SCHEMA is not default anymore).
v5.2.0Compare Source
Added
maxTotalMergeKeys(10000) loader option to limit the total number ofkeys processed by YAML merge (
<<) across oneload()/loadAll()call.maxAliases(-1) loader option to limit the number of YAML aliases perdocument.
Removed
maxMergeSeqLengthreplaced withmaxTotalMergeKeysfor limiting YAML mergeprocessing.
Fixed
1e21)v5.1.0Compare Source
Added
different result value.
Changed
quoteStylenow selects the preferred quote style; use therestored
forceQuotesoption to force quoting non-key strings.v5.0.0Compare Source
Added
JSON_SCHEMAandCORE_SCHEMAwith spec-compliant scalar resolutionrules, and added
YAML11_SCHEMA.realMapTagfor lossless mappings with non-string and complex keys.Object-based mappings now reject complex keys instead of stringifying them.
dump()transformoption for changing the generated AST beforerendering.
dump()optionsseqInlineFirst,flowBracketPadding,flowSkipCommaSpace,flowSkipColonSpace,quoteFlowKeys,quoteStyleandtagBeforeAnchor.test set.
Changed
exports.
CORE_SCHEMA(loader default),JSON_SCHEMA,FAILSAFE_SCHEMA.YAML11_SCHEMA, a combination of all YAML 1.1 tags (YAML 1.1 does notspecify a schema, only "types").
load/dumpdefault behaviour is now specified exactly via schemas:loadusesCORE_SCHEMA, without!!mergeby default.dumpusesYAML11_SCHEMA+CORE_SCHEMAfor the quoting check, toguarantee backward compatibility by default.
!!setis now loaded as a JavaScriptSet.TypeAPI with a tags API. Similar, but more precise andsimpler. See examples for details. Tags can be defined via
defineScalarTag(),defineSequenceTag()anddefineMappingTag(), or as aspread + override of an existing tag.
Schema.extend()toSchema.withTags().markers, block keys, multiline scalars, tag syntax and other things.
load()now throws on empty input instead of returningundefined.js-yaml/browserexport.loadAllsignature with an iterator (still works, but is acandidate for removal).
Removed
safeLoad(),safeLoadAll()andsafeDump()exports.DEFAULT_SCHEMAand the nestedtypesexport.onWarning,legacyandlistener.styles,replacer,noCompatMode,condenseFlow,quotingTypeandforceQuotes. RenamednoArrayIndenttoseqNoIndent.Formatting and representation are now configured through presenter options,
schemas and tag definitions. See migration guide on how to replace.
lib/.v4.3.2Compare Source
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.