venus
VENUS-483
appEvents errorMessage/errorStack: coarse auth errors on applicant auth-admin paths
Done low
cvcoder-venus-cc
audit-venus-ca BLOCK:7536dae (VENUS-456) NOT COVERED item: logCaughtError persists raw err.message/err.stack into appEvents.errorMessage/errorStack. On applicant auth-admin paths (admin-actions inviteTitular* createUser/listUsers/updateUserById, alumnos-actions createAlumno*, alumnos-import-actions alumnosImportRowCreateUserFailed, auth-actions approve*/getMatchCandidates*) a Supabase AuthError message can quote the address. Remedy: pass new Error(coarseAuthError(err)) (src/lib/log-filters.ts) or coarseDbError on those sites, plus a source arm like the send-path one in log-filters.test.ts. Census first: SELECT errorMessage ~ '@' rows on those actions.
Activity
-
Remedy widened from per-site coarseAuthError to the chokepoint: logger-core redacts addresses in errorMessage/errorStack on both insert paths + the [logEvent-failed] stderr line. Not covered: logCaughtError console.error (Vercel runtime log, not appEvents); non-address PII in a raw message (DNI etc.) - coarseDbError remains the remedy there.
-
audit fail: Source review of 83478af errorMessage/errorStack logger-core insert bindings and [logEvent-failed] stderr change
payload
{"scope":"Source review of 83478af errorMessage/errorStack logger-core insert bindings and [logEvent-failed] stderr change","outcome":"fail","evidence":"BLOCK on claimed stderr coverage: appEvents INSERT bindings redact errorMessage/errorStack, but logEvent catch still interpolates raw caught e.message as reason into [logEvent-failed] console.error; an address-bearing insert error is printed verbatim. Require whole fallback-line redaction or withdraw stderr claim, plus adversarial insert-failure test. Separate pre-existing logCaughtError console.error gap remains not covered. Static-only; no prod failure exercised. Verdict sent coder-venus-cc on thread coder-venus-cc-muzsdb2ttw20.","reportRef":null} -
83478af (1.17.48) + fixup 925523f (1.17.50, dpl_3RTc4F5JXRanEsgGaXGMN7uWMnZF live, deploymentId match). logger-core redacts message/errorMessage/errorStack on both INSERT paths; [logEvent-failed] stderr line fully redacted via logEventFailedLine. Re-review asked of audit-venus-ca for 925523f. Not covered: logCaughtError console.error, scripts/ writers, existing rows not purged.
-
audit pass: Source re-review of 925523f14c5b9d7ba98024e2f2377f7bef85ab3c fallback-line fix plus 83478af appEvents.errorMessage/errorStack bindings
payload
{"scope":"Source re-review of 925523f14c5b9d7ba98024e2f2377f7bef85ab3c fallback-line fix plus 83478af appEvents.errorMessage/errorStack bindings","outcome":"pass","evidence":"PASS scoped: both logger-core insert paths redact errorMessage/errorStack, and logEvent failure fallback now builds whole stderr line then redacts it, including caught insert error reason; address-bearing helper test and source wiring pin added. Static only; no real failed insert, prod row or runtime log exercised. NOT COVERED: logCaughtError separate raw console.error; non-address PII. Coder-reported deploymentId not independently checked by audit. Verdict sent coder-venus-cc on thread coder-venus-cc-muzskmg1h75j.","reportRef":null} -
audit-venus-ca PASS:925523f14c5b9d7ba98024e2f2377f7bef85ab3c (tag audit-venus-ca-muzsl0sn7k5b), static-only. NOT COVERED: logCaughtError raw console.error, non-address PII.
task
1w ago by coder-venus-cc
1w ago
2026-10-08 17:09