Summary

node-csv: Prototype replacement still reachable via columns path

Advisory details

Impact

With columns: true and group_columns_by_name: true, a duplicated proto header causes the duplicate-column branch to assign an array to obj['proto'], invoking the proto setter and replacing the parsed record object's prototype with attacker-controlled data. Fixed in 7.0.2 (Object.hasOwn duplicate check + Object.defineProperty assignment).

Patches

The problem been patched.

Workarounds

Disable usage of both the columns and group_columns_by_name options.

References

issue #496, PR #497

References