Impact
The session cookie is set with HttpOnly; SameSite=Lax; Path=/ but does not include the Secure flag. This means the cookie will be sent over plain HTTP connections.
Since the server binds to 127.0.0.1 by default and uses HTTP (not HTTPS), this is acceptable for localhost use. However, when --allow-network is used to bind to 0.0.0.0, cookies could be transmitted over insecure network connections and intercepted by an attacker.
Affected code:
packages/server/src/session.ts:76 — cookie string lacks ; Secure attribute
Patches
0.70.5
Fix: Conditionally add ; Secure when served over HTTPS or when --allow-network is enabled:
const securePart = isHttps ? "; Secure" : "";
return `${SESSION_COOKIE_NAME}=${cookieValue}; HttpOnly; SameSite=Lax; Path=/${securePart}; Max-Age=${maxAge}`;
Workarounds
Do not use --allow-network over untrusted networks without a TLS-terminating reverse proxy.
Resources
- OWASP: Secure Cookie Attribute
- File:
packages/server/src/session.ts
References
Impact
The session cookie is set with
HttpOnly; SameSite=Lax; Path=/but does not include theSecureflag. This means the cookie will be sent over plain HTTP connections.Since the server binds to
127.0.0.1by default and uses HTTP (not HTTPS), this is acceptable for localhost use. However, when--allow-networkis used to bind to0.0.0.0, cookies could be transmitted over insecure network connections and intercepted by an attacker.Affected code:
packages/server/src/session.ts:76— cookie string lacks; SecureattributePatches
0.70.5
Fix: Conditionally add
; Securewhen served over HTTPS or when--allow-networkis enabled:Workarounds
Do not use
--allow-networkover untrusted networks without a TLS-terminating reverse proxy.Resources
packages/server/src/session.tsReferences