Datasette Patches a SQL Injection That Let Public-Table Users Read Private Tables in the Same Database
Simon Willison·medium signal
Simon Willison shipped Datasette 1.0a38 on Aug 6 and back-ported the fix to 0.65.3: instances that serve both public and private tables from one database allowed users with public-table access to execute SQL injection and gain read-only access to the private tables, defeating the permission system even with execute-sql disabled. Willison notes the mixed public/private configuration is uncommon, limiting real-world exposure, but the failure is worth internalizing — a permission check enforced above the query layer is not a boundary if the query builder itself can be coerced.