fix(deps): Update auto-merged patch dependencies#2680
Open
renovate-sh-app[bot] wants to merge 1 commit into
Open
fix(deps): Update auto-merged patch dependencies#2680renovate-sh-app[bot] wants to merge 1 commit into
renovate-sh-app[bot] wants to merge 1 commit into
Conversation
Contributor
|
Hello! 👋 This repository uses Auto for releasing packages using PR labels. ❌ This PR cannot be merged until the following issues are addressed:
🏷️ More info about which labels to use
|
Contributor
Author
|
Rebase requested. Renovate is processing this repository now. |
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
June 10, 2026 09:58
db90662 to
61cd281
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
June 11, 2026 17:12
61cd281 to
cb55d3a
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
June 13, 2026 02:12
cb55d3a to
855001e
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
June 22, 2026 20:10
855001e to
44a3453
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
July 1, 2026 17:15
44a3453 to
26c6cbd
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
4 times, most recently
from
July 21, 2026 17:04
b646585 to
fbcbbb5
Compare
renovate-sh-app
Bot
force-pushed
the
renovate/prod-dependencies-automerge
branch
from
July 24, 2026 23:05
fbcbbb5 to
1a79bc4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
8.0.1→8.0.27.8.2→7.8.51.4.1→1.4.2Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Valibot: record() issue paths can make flatten() throw for inherited Object property names
CVE-2026-59952 / GHSA-5qjj-4xww-7phc
More information
Details
Summary
valibot1.4.1 can throw aTypeErrorinside itsflatten()helper when validation issues contain attacker-controlled object keys such astoString,valueOf, orhasOwnProperty.The issue is reachable through normal
record()validation.record()intentionally filters__proto__,prototype, andconstructor, but it still accepts other own keys that collide with inheritedObject.prototypeproperties. If the record key schema or value schema rejects such an entry, Valibot creates an issue path containing that key. Passing the resulting issues to Valibot's documentedflatten()helper causesflatErrors.nested[dotPath]to resolve to the inherited method instead of an own error array, and the helper calls.push(...)on that function.This is not a global prototype pollution issue. The impact is availability/error handling: applications that validate user-controlled objects with
record()and flatten validation errors for API responses can crash the request path with aTypeErrorinstead of returning structured validation errors.Affected package
valibot1.4.1open-circle/valibot9bb6617Root cause
record()uses_isValidObjectKey()before validating record entries. The helper blocks the three classic prototype pollution keys:It does not block other inherited
Object.prototypenames such astoString,valueOf, andhasOwnProperty. These remain valid own JSON object keys and can appear in issue paths when either the record key schema or value schema rejects the entry.flatten()then creates nested error storage with an ordinary object:For a dot path such as
toString, this check reads the inheritedObject.prototype.toStringfunction:Because the inherited function is truthy,
flatten()calls.push(...)on a function and throwsTypeError: flatErrors.nested[dotPath].push is not a function.Impact
A remote attacker can trigger this if an application:
v.record(...);toString;flatten(result.issues)helper to prepare validation errors.This is a common pattern in API/form validation:
safeParse()collects issues andflatten()converts them into response-friendly error objects. Instead of a validation response, the request can hit an unexpected exception path.The same root cause can also affect manually constructed issues or other schemas that place inherited Object property names into dot paths. I am reporting the
record()path because it uses only public Valibot APIs and attacker-controlled JSON keys.Local reproduction
Run in a disposable directory:
Minimal example:
Observed output from
valibot@1.4.1:{ "name": "record value schema rejects attacker-controlled value", "key": "toString", "success": false, "issueCount": 1, "firstPath": ["toString"], "firstMessage": "Invalid type: Expected number but received \"not-a-number\"", "flattened": { "ok": false, "exception": "TypeError", "message": "flatErrors.nested[dotPath].push is not a function" } }The local PoC also reproduces the same exception for
valueOf,hasOwnProperty,isPrototypeOf,propertyIsEnumerable, andtoLocaleString. A control case with an ordinary key produces normal flattened errors.Duplicate checks performed before submission
valibotrelease is1.4.1and maps toopen-circle/valibot.gh api repos/open-circle/valibot/private-vulnerability-reportingreturned{"enabled":true}.npm auditfor a clean project containing onlyvalibot@1.4.1returned no vulnerabilities.1.2.0.valibot1.4.1returned no vulnerabilities.flatten toString,flatten hasOwnProperty,record toString,__proto__,constructor, andprototype pollutiondid not find a matching disclosure of thisrecord()issue-path /flatten()exception.open-circle/valibot#67added prototype pollution mitigation forrecord()by blacklisting__proto__,prototype, andconstructor; it does not coverflatten()collisions with other inherited property names.open-circle/valibot#1429is an open plain-object /record()type semantics PR and does not disclose thisflatten()exception behavior.Suggested remediation
Use null-prototype containers for flat error maps and/or perform own-property checks before appending:
flatErrors.nestedasObject.create(null).Object.prototype.hasOwnProperty.call(flatErrors.nested, dotPath)rather than truthiness.getDotPath()/flatten(), including inherited Object property names.flatten()with pathstoString,valueOf,hasOwnProperty,__proto__,prototype, andconstructor.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
TooTallNate/proxy-agents (proxy-agent)
v8.0.2Compare Source
Patch Changes
1852c75]d8f2926]84e85ed]8487a78]3ebf4b2]ce0243e]npm/node-semver (semver)
v7.8.5Compare Source
Bug Fixes
9c8692a#878 include prereleases in tilde range lower bound with includePrerelease (#878) (@chatman-media)v7.8.4Compare Source
Bug Fixes
e583226#874 reject numeric segments after x-ranges (@pupuking723)v7.8.3Compare Source
Bug Fixes
046da7f#872 align caret includePrerelease lower bounds (#872) (@wayyoungboy)Chores
3485dda#866 bump @npmcli/eslint-config from 6.0.1 to 7.0.0 (#866) (@dependabot[bot])open-circle/valibot (valibot)
v1.4.2Compare Source
Many thanks to @Faze-up and @chatman-media for contributing to this release.
Intl.Segmenterfor non-primitive locales, preventing it from being recreated on everywords,minWords,maxWordsandnotWordsvalidation (pull request #1521)flattenmethod to handle issue path keys that collide withObject.prototypemembers liketoStringinstead of throwing aTypeError(pull request #1522)intersectschema to merge object keys that collide withObject.prototypemembers liketoStringinstead of failing to merge them (pull request #1522)Configuration
📅 Schedule: (in timezone Europe/Berlin)
* 8-16 * * 1-4)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
Need help?
You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.