What does it take to onboard an extension?
summary
Explains the exact gatekeeping steps used to onboard PostgreSQL extensions to Azure: inspect makefiles and control files for file writes and privilege escalation, audit upgrade scripts for unqualified names and operator/function overload hijacks, scan compiled objects and linked libraries for static crypto or unsafe deps, check license trees (example: Rust crate ring), and test builds and installs in a jailed Docker while recording filesystem and network activity. Demonstrates attacks that overwrite other extension SQL files, cause server crashes or silent memory corruption, and recommends explicit qualification and trusted flag scrutiny.
AI-written summary · about
chapters (16)
- 0:00Introduction to extensions
- 1:05What are PostgreSQL extensions
- 2:31Minimalistic extension example
- 7:28Installing the pair extension
- 15:21How PostgreSQL handles extensions
- 17:27Security risks in extension scripts
- 20:37Malicious make file example
- 24:21Consequences of malicious make files
- 27:45Build install best practices
- 29:28Control file security risks
- 31:15Superuser privileges in extensions
- 31:58Risks of compiled extension code
- 34:29What compiled code can do
- 37:19Extension review process
- 42:37Safe extension deployment tips
- 43:42Q&A on extension registries
related talks
28mBeyond Postgres: Insights about the PostgreSQL Extensibility
52mThe trouble with extensions
42mPostgreSQL Extensions: A Deep Dive
23mHandle Azure PostgreSQL Auditing With Ease
29mFortifying Azure Database for PostgreSQL: Stop Intrusions in Their Tracks
58mPushing boundaries with extensions, for extension
52mAnarchy in the Database: A Survey and Evaluation of Database Management System Extensibility
26mState of the Postgres Extension Ecosystem
