Critical: Web server has stored XSS and unauthenticated file upload #26
Labels
No labels
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
chore
critical
decompose
feature-request
high
in-progress
medium
quality
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/activity-book-app#26
Loading…
Add table
Add a link
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?
Findings
C2: All activity renderers (render_coloring, render_maze, render_wordsearch, render_matching, render_jigsaw, render_colorbynumber, render_story) inject user-controlled narration text into HTML/JavaScript f-strings with only weak backtick escaping `. No HTML escaping. Attacker injects via stories.json mutation.
C3:
/api/saveendpoint:Content-Lengthwithout validation — OOM viaContent-Length: 999999999.pngextensionAffected files
web/server.py(lines ~100-104, 507, 581-588)Impact
Stored XSS in children's book app. Unauthenticated remote DoS and disk exhaustion.