T09 · Insecure Skill Coding Practices
- Location
scripts/login-surfline.ts:23- Finding
Surfline Session Cookies and Login Screenshots Are Stored Without Restrictive Access Controls
- Content
View full analysis
{ try { const data = await fs.readFile(COOKIES_FILE, 'utf-8'); return JSON.parse(data); } catch (error) { throw new Error( 'Session cookies not found. Run "npx ts-node scripts/login-surfline.ts" first.' ); } } function formatCookieHeader(cookies: Cookie[]): string { return cookies .filter((c) => c.domain.includes('surfline.com')) .map((c) => `${c.name}=${c.value}`) .join('; '); } ``` ### Technical Analysis Playwright browser cookies can contain reusable authenticated session tokens. The application serializes all cookies ...[truncated 3287 chars]- Remediation
View remediation
domain === 'surfline.com' || domain === '.surfline.com' || domain.endsWith('.surfline.com'); ``` Also reject malformed cookie names or values containing control characters before constructing a request header. 8. Document session revocation and recovery procedures, including deleting `cookies.json`, logging out of Surfline, and rotating the account password when sess ...[truncated 32 chars]
