Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype Pollution in lodash.set #5894

Closed
Jessegerard opened this issue Jun 28, 2024 · 4 comments
Closed

Prototype Pollution in lodash.set #5894

Jessegerard opened this issue Jun 28, 2024 · 4 comments
Labels

Comments

@Jessegerard
Copy link

Github Advisory: GHSA-p6mc-m468-83gw
High Severity Issue

Looks like this issue was patched in lodash@4.17.19
Is it possible to patch the lodash.set package?

@falsyvalues
Copy link
Contributor

Hi @Jessegerard There packages are no longer supported it's unlikely they will receive any update.

@Jessegerard
Copy link
Author

@falsyvalues Thanks for your response.

I had no idea the "dot" micro packages were no longer receiving security updates. There's no warning on the npm page.

Do you know if there has been a discussion about marking them as deprecated in npm? Or adding instructions for migrating to a supported version of lodash? Those packages are still downloaded millions of times a week, seems like they should be properly sunset.

@ferdnyc
Copy link

ferdnyc commented Jul 4, 2024

@Jessegerard The Lodash Per-Method Packages document already notes,

Per Method Packages

Lodash methods are available in standalone per method packages like lodash.mapvalues, lodash.pickby, etc. These packages contain only the code the method depends on.

However, use of these packages is discouraged and they will be removed in v5.

Although they may seem more lightweight, they will usually increase the size of node_modules and webpack/rollup bundles in a project that transitively depends on multiple per method packages and/or the main lodash package. Whereas many methods in the main lodash package share code, the per method packages internally bundle copies of any code they depend on.

In #3838 @jdalton mentions,

I can't deprecate them with the npm deprecate method since that sends a log to stderr and causes some build scripts to fail. So I will simply let it fade away without a v5 update.

@jdalton
Copy link
Member

jdalton commented Jul 10, 2024

@Jessegerard Depending on the context specifying __proto__ may be what the user intended. I try to only block property path access if the behavior is unintentional.

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

No branches or pull requests

4 participants