[frontend] 1162 innerHTML assignments create systemic XSS surface across JS layer #790
Labels
No labels
area:chat
area:core
area:llm
area:routes
area:tools
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
refactor
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sleepy/odysseus#790
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
Across all frontend JS files, there are 1,162 innerHTML assignments vs only 51 textContent assignments in chat.js alone. Top offenders:
Risk
While many of these use the esc() helper, the sheer volume makes it extremely difficult to audit which assignments properly escape user content and which do not. The issue in #788 (character name XSS) proves that escaping is inconsistent.
Recommendation