Skip to content

Conversation

@73junito
Copy link
Owner

@73junito 73junito commented Jan 28, 2026

Short summary

  • Replace UI rendering of raw err.message/error.message with static user-facing messages, log full errors server-side, and enforce the rule via ESLint.

Security

  • Risk: Rendering raw err.message in UI can leak internal details and is a future XSS footgun (e.g., if codepaths later introduce dangerouslySetInnerHTML or non-JSX rendering contexts).
  • Action taken: Replaced instances that displayed err.message with safe static messages and added console.error(err) so full details remain in logs/monitoring.
  • Files changed:
    • frontend/web/src/app/login/page.tsx
    • frontend/web/src/app/register/page.tsx
    • frontend/web/src/app/courses/page.tsx
    • eslint.config.js (new no-restricted-properties rule scoped to frontend/web)
  • Prevention: ESLint now flags err.message / error.message usage in the web UI; CI lint will catch regressions.
  • Why this is safe: React escapes JSX by default, but this prevents information leakage and future fragile patterns from reintroducing risk. Full error details remain available in logs.

Testing & notes

  • Run the repo lint/CI to verify the new rule is active and the web build passes.
  • This change is a UI message-only fix; no functional behavior changes beyond messaging.

One-line changelog (optional)

  • Security: replaced raw error rendering in UI with safe messaging and added ESLint guard to prevent regressions.

Audit note (optional)

  • UI error handling hardened to prevent information leakage and future XSS vectors; enforcement added via linting.

GitHub Copilot and others added 30 commits January 10, 2026 12:01
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add test for skipping modules with contentStatus="humanized"
- Add test for error handling when call_ollama raises exceptions
- Add test for streaming mode with TTFT capture
- Add test for modules.json dict format with 'modules' key
- Add test for modules.json plain array format
- Fix existing test to meet quality guard requirements

Co-authored-by: 73junito <86015877+73junito@users.noreply.github.com>
Co-authored-by: 73junito <86015877+73junito@users.noreply.github.com>
Co-authored-by: 73junito <86015877+73junito@users.noreply.github.com>
73junito and others added 29 commits January 28, 2026 18:10
Fix critical control flow error in orchestrate_content.py retry logic
Fix corrupted orchestrate_content.py: restore missing functions
Fix syntax error in orchestrate_content.py from bad merge
Fix corrupted orchestrate_content.py structure and missing process_module function
@73junito 73junito changed the title Chore/storybook pnpm retry fix(security): avoid rendering raw error messages in UI; enforce via ESLint Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants