Highlights
Auth Bypass: 247 prior fixes. Scrutinize any change in this area.
frappe/model/db_query.py: most-fixed (58 issues). Treat as high-risk during review.
308 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
SQL Injection: The dynamic DatabaseQuery engine has historically been vulnerable to SQL injection via unvalidated columns, order_by/group_by clauses, and naive keyword blocklists that could be bypassed with comments, whitespace variations, and nested subqueries. Attackers can execute arbitrary SQL commands remotely.
Auth Bypass: Remote client-facing APIs like set_value, get_count, and bulk_update regularly leaked permissions by allowing users to overwrite internal flags, modify un-validated child tables, or leverage whitelisted wrappers that bypassed standard document authorization checks.
Stored XSS: Raw HTML interpolation of version change comments and field styling in the document timeline has recurrently permitted stored XSS. An authenticated attacker can inject malicious payloads via document modifications that execute when another user views the timeline.