Fetching from the wire…
Public story · 2026-08-07 · high
The bug defeated Datasette's permission system even with execute-sql disabled, and Willison patched the alpha and stable 0.65 branches the same day.
Why now: Willison shipped the fix and the 0.65.3 backport on August 6.
Simon Willison patched a SQL injection in Datasette on August 6 that let public-table users read rows from private tables, per his writeup.
The hole hit any installation serving public and private tables from the same database, the exact split Datasette's permission system exists to guard. Even with the execute-sql feature turned off, a public-table user could still reach data they'd never been granted access to.
The injection ran through Datasette's query builder rather than around it. Permission checks sat above the query layer, so once attacker-controlled SQL reached the builder, nothing stopped it from touching the private tables.
Willison shipped the fix as 1.0a38 and backported it to 0.65.3 the same day. He also said the mixed configuration, public and private tables sharing one database, is uncommon, which caps how many live installs were actually exposed.
The real lesson isn't specific to Datasette. Any tool that checks permissions above a general-purpose query builder instead of inside it carries the same hole. Watch for the same bug shape in other apps that run ad hoc queries against a database holding both public and private data.
Each link below shares sources, entities, or timing with this story.
Simon Willison released LLM / Shared entities / Same source domain / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Simon Willison released LLM); both cover Datasette, Simon Willison, SQL, Willison; reported by the same outlet (simonwillison.net).
Linked by a graph relationship (Simon Willison released LLM); both cover Datasette, Simon Willison, SQL; reported by the same outlet (simonwillison.net).
Simon Willison uses Fable / Shared entities / Same source domain / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Simon Willison uses Fable); both cover Simon Willison, SQL, Willison; reported by the same outlet (simonwillison.net).
Simon Willison released Datasette / Shared entities / Same source domain / Shared topic / Earlier coverage
Linked by a graph relationship (Simon Willison released Datasette); both cover Datasette, Simon Willison, Willison; reported by the same outlet (simonwillison.net).
Simon Willison uses Fable / Shared entities / Same source domain / Earlier coverage
Linked by a graph relationship (Simon Willison uses Fable); both cover August, Simon Willison, Willison; reported by the same outlet (simonwillison.net).
Simon Willison released datasette-agent / Shared entities / Same source domain / Shared topic / Earlier coverage
Linked by a graph relationship (Simon Willison released datasette-agent); both cover Simon Willison, Willison; reported by the same outlet (simonwillison.net).
Simon Willison released LLM / Shared entities / Same source domain / Earlier coverage / Tension
Linked by a graph relationship (Simon Willison released LLM); both cover Simon Willison, Willison; reported by the same outlet (simonwillison.net).
Simon Willison uses Claude / Shared entities / Same source domain / Shared topic
Linked by a graph relationship (Simon Willison uses Claude); both cover August, Simon Willison; reported by the same outlet (simonwillison.net).