PST-081: Any administrator can download a full backup holding every account's rows and files #810
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#810
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?
Found in the security audit of 2026-10-10 (
SECURITY-AUDIT-2026-10-10.md), run againstmainatc30851bfrom 8 to 10 October 2026, as PST-081. Severity: Informational.The text below is the audit's entry, unchanged apart from links to the other issues it names. The finding was produced by automated review and checked by a second automated pass; re-check it before acting on it.
src/postulo/core/views_backups.py(177-195)Who can do it, and what they need. Any account with
is_staff(every administrator can be appointed by any other, #368). Precondition: staff on the instance.How it works.
BackupRunView), which writes a verified tar.gz of the database dump plus media/ and plugins/.BackupDownloadView).Impact. The threat model's row for 'Another account on the same instance' says Server settings shows administrators accounts and never anyone's applications or documents (#368); the backup page is the one place where that is not true. …
Verification (verdict: confirmed; severity after verification: Informational). Not a vulnerability: the attacker is the administrator the threat model explicitly trusts with the database, and the download adds a recent-authentication check, a WARNING log line naming who, 404 for non-staff, and security tests (tests/security/test_backups_page.py). Precondition stated precisely: is_staff (superuser not needed) plus a recent sign-in through the form (client.force_login alone is redirected to reauthenticate, as the existing test shows). …
Suggested remediation. Either state plainly in THREAT-MODEL.md (#368 row) that the Backups page is the exception, or gate backup download behind a second factor / operator-only setting (for example an environment flag that limits backup download to the console), and consider encrypting the archive with an operator-supplied key as the Hardening page already recommends.
Fixed in
e5a33a5c5on main.POSTULO_BACKUP_DOWNLOADfalls open to "every administrator" on any value it does not recognise, and no start-up check reads it #978