Description
Effect is a TypeScript framework that consists of several packages that work together to help build TypeScript applications. From @effect/platform 0.1.0 until 0.97.1 and effect 4.0.0-beta.0 until 4.0.0-beta.103, the name, domain, and path fields passed to makeCookie() allow semicolon delimiters that serializeCookie() writes verbatim into Set-Cookie headers. A caller that supplies attacker-controlled values can append cookie attributes, including a broader Domain or, when the caller has not set those options itself, SameSite=None or Max-Age. Encoded cookie values and CR or LF characters remain unaffected. This can widen a cookie's scope or add otherwise-unset cookie attributes. This issue is fixed in @effect/platform 0.97.1 and effect 4.0.0-beta.103.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Effect-TS | effect | >= 4.0.0-beta.0, < 4.0.0-beta.103 | — |
| @effect | platform | >= 0.1.0, < 0.97.1 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | @effect/platform | >= 0.1.0, < 0.97.1 | 0.97.1 | GHSA-chp3-j5qr-2vfr |
| npm | effect | >= 4.0.0-beta.0, < 4.0.0-beta.103 | 4.0.0-beta.103 | GHSA-chp3-j5qr-2vfr |
References
- https://github.com/Effect-TS/effect/security/advisories/GHSA-chp3-j5qr-2vfr
- https://github.com/Effect-TS/effect/pull/6763
- https://github.com/Effect-TS/effect/pull/6765
- https://github.com/Effect-TS/effect/commit/4a57af24011db1d66e947289d2f7ffc2074696d2
- https://github.com/Effect-TS/effect/commit/5859b373b9be04d5037a594196b4743ad80379bd
- https://github.com/Effect-TS/effect/releases/tag/@effect/platform@0.97.1
- https://github.com/Effect-TS/effect/releases/tag/effect@4.0.0-beta.103