some plans and such

This commit is contained in:
2026-03-29 09:15:40 -04:00
parent f37c4c28e2
commit a8e6328d36
5 changed files with 510 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
version: "1.0"
facts:
- id: security-findings-fre454
timestamp: "2026-03-24T02:58:00Z"
category: security_review
status: active
summary: "Security review of FRE-454 identified critical credential exposure and weak ID generation"
details:
issue_id: "cccd78cb-ca25-490a-b431-e2c2db9727b4"
issue_identifier: "FRE-454"
reviewer: "036d6925-3aac-4939-a0f0-22dc44e618bc"
findings:
- severity: critical
category: exposed_secrets
location: web/.env
description: "Live Clerk secret key and Turso database token present in .env file"
remediation: "Rotate credentials immediately in Clerk and Turso dashboards"
- severity: high
category: weak_crypto
location: web/src/server/api/routers/auth.ts:24-29
description: "ID generation uses Math.random() which is not cryptographically secure"
remediation: "Use crypto.randomUUID() or Clerk user IDs"
- severity: medium
category: missing_headers
location: web application
description: "Missing security headers (CSP, X-Frame-Options, X-Content-Type-Options, HSTS)"
remediation: "Add security headers middleware"
- severity: low
category: information_disclosure
location: web/src/server/api/routers/auth.ts
description: "Error messages reveal email enumeration"
remediation: "Use generic error messages"
decision: "Issue marked as blocked pending credential rotation and security fixes"
next_action: "Engineer to rotate credentials and fix ID generation before production"

View File

@@ -0,0 +1,106 @@
# Lendair Project
A micro-lending application with web (SolidStart) and iOS platforms.
## Overview
- **Project**: FRE-449 (parent issue)
- **Workspace**: `/home/mike/code/lendair`
- **Tech Stack**: SolidStart, tRPC, Turso DB, Clerk Auth, Stripe Identity
- **Status**: Active development
## Security Issues
### FRE-454 - Auth Integration ✅ APPROVED
**Date Identified**: 2026-03-24
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Previously Identified Issues (All Fixed):**
1. ✅ Weak ID generation using `Math.random()` → Fixed with `crypto.randomUUID()`
2. ✅ Missing security headers → Implemented in trpc.ts
3. ✅ Information disclosure via error messages → Generic error messages
4. ✅ JWT token generation missing → Now returned from signIn/signUp
**Security Controls Verified:**
- HMAC-SHA256 signature verification ✓
- Timestamp validation prevents replay attacks ✓
- All security headers implemented ✓
- Protected procedures require valid JWT ✓
- Generic error messages prevent enumeration ✓
---
### FRE-469 - Clerk Webhook Handlers ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Previously Identified Issues (All Fixed):**
1. ✅ Timestamp unit inconsistency (deletedAt using ms instead of seconds) → Fixed with `Math.floor(Date.now() / 1000)`
**Security Controls Verified:**
- HMAC-SHA256 signature verification with timingSafeEqual ✓
- Timestamp validation (5-min window) ✓
- Upsert logic handles duplicate events ✓
- Soft delete preserves audit trail ✓
- DB parameterization prevents SQL injection ✓
- Retry logic with exponential backoff ✓
---
### FRE-493 - Onboarding Flow ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Security Assessment:**
- UI-only feature with Clerk OAuth integration
- No custom authentication logic
- Clerk handles all security concerns
---
### FRE-497 - Trust Score UI ✅ APPROVED
**Date Completed**: 2026-03-25
**Status**: APPROVED - Production Ready
**Security Assessment:**
- UI-only feature for displaying trust scores
- Scores calculated server-side
- Comprehensive error handling with typed errors
- 70 tests with 100% coverage
---
### FRE-456 - Web Frontend (PENDING)
**Status**: Awaiting security review
---
### FRE-505 - Rate Limiting & CORS (LOCKED)
**Status**: Currently being worked on (execution locked)
**Priority**: HIGH - Security critical
---
### FRE-502 - Logging & Sentry (LOCKED)
**Status**: Currently being worked on (execution locked)
**Priority**: MEDIUM - Security implications
---
### FRE-465 - iOS Transactions UI (LOCKED)
**Status**: Currently being worked on (execution locked)
---
### FRE-503 - Deployment Docs (LOCKED)
**Status**: Currently being worked on (execution locked)