cookie accepts cookie name, path, and domain with out of bounds characters
Affected releases · cookie
- 0.6.x and older0.0.0 – 0.6.0No fix, no longer updated
0.6.x has no fix yet; the newest fixed line:
npm install cookie@0.7.0Every release on a timeline
Not affected
2.0.0 – 2.0.1
2 releases, latest
Affected
0.0.0 – 0.6.0
25 releases
Fixed
0.7.0 – 0.7.2
3 releases
What happens
Impact
The cookie name could be used to set other fields of the cookie, resulting in an unexpected cookie value. For example, serialize("userName=<script>alert('XSS3')</script>; Max-Age=2592000; a", value) would result in "userName=<script>alert('XSS3')</script>; Max-Age=2592000; a=test", setting userName cookie to <script> and ignoring value.
A similar escape can be used for path and domain, which could be abused to alter other fields of the cookie.
Patches
Upgrade to 0.7.0, which updates the validation for name, path, and domain.
Workarounds
Avoid passing untrusted or arbitrary values for these fields, ensure they are set by the application instead of user input.
References