
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-29089 is an untrusted search path vulnerability in TimescaleDB, a time-series database packaged as a PostgreSQL extension, that allows a low-privileged local user to execute arbitrary code with superuser privileges during extension upgrades. It affects TimescaleDB versions 2.23.0 through 2.25.1 and was disclosed on March 6, 2026, with a patch released in version 2.25.2 on March 3, 2026. The vulnerability carries a CVSS v3.1 base score of 8.8 (High) (GitHub Advisory, Red Hat Bugzilla).
The root cause is CWE-426 (Untrusted Search Path): TimescaleDB's SQL install, upgrade, and downgrade scripts did not explicitly set the search_path at the start of execution, relying instead on the session-level search_path setting (GitHub Advisory). PostgreSQL resolves unqualified database object names (tables, functions, operators) by searching schemas in the order defined by search_path; if a user-writable schema appears before pg_catalog, a malicious user can create shadow functions in that schema that override built-in PostgreSQL functions (GitHub PR #9331). When a database administrator subsequently runs ALTER EXTENSION timescaledb UPDATE, the upgrade script invokes these shadowed functions instead of the legitimate built-ins, resulting in arbitrary code execution. The fix introduced a header.sql file prepended to all SQL scripts that explicitly executes SET LOCAL search_path TO pg_catalog, pg_temp;, neutralizing the attack vector (GitHub Commit).
Successful exploitation allows a low-privileged database user to escalate privileges to PostgreSQL superuser level, resulting in full compromise of the database system — including unauthorized access to all data (confidentiality), modification or deletion of any database content (integrity), and potential disruption of database services (availability) (GitHub Advisory). The CVSS scope is marked "Changed," reflecting that the impact extends beyond the attacker's own database session to the broader PostgreSQL instance and potentially the underlying host OS if the superuser account has OS-level privileges (Feedly). Notably, instances hosted on Timescale's Tiger Cloud and Managed Service for TimescaleDB are not affected due to additional platform-level security controls (GitHub Advisory).
No public proof-of-concept exploit code or evidence of in-the-wild exploitation has been reported as of the time of disclosure (Feedly). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.012% (0.000120), indicating a very low probability of exploitation in the near term. Exploitation requires local database access with at least low privileges and the ability to create objects in a user-writable schema that appears in the search_path, and is only triggered when a privileged user performs an extension upgrade.
search_path before pg_catalog.search_path setting with SHOW search_path; to identify user-writable schemas that are resolved before system schemas.CREATE OR REPLACE FUNCTION public.some_builtin_function(...) RETURNS ... AS $$ BEGIN -- malicious payload, e.g., GRANT superuser TO attacker_role; END; $$ LANGUAGE plpgsql;ALTER EXTENSION timescaledb UPDATE;. This can be triggered by a database administrator performing routine maintenance or an automated upgrade process.postgresql.log) showing ALTER EXTENSION timescaledb UPDATE executed around the time of suspicious privilege changes or unexpected function calls from non-system schemas.public) that share names with PostgreSQL built-in functions — query with SELECT n.nspname, p.proname FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname NOT IN ('pg_catalog','information_schema','timescaledb_internal') AND p.proname IN (SELECT proname FROM pg_proc WHERE pronamespace = 'pg_catalog'::regnamespace);pg_authid or audit logs following an extension upgrade event.search_path settings that place user-writable schemas (e.g., public) before pg_catalog, detectable via SELECT usename, useconfig FROM pg_user; or pg_database.datconfig.The primary remediation is to upgrade TimescaleDB to version 2.25.2 or later, which prepends SET LOCAL search_path TO pg_catalog, pg_temp; to all SQL installation and upgrade scripts (GitHub Release 2.25.2). As a workaround for environments that cannot immediately upgrade, blocking extension upgrades (i.e., preventing execution of ALTER EXTENSION timescaledb UPDATE) will prevent exploitation (GitHub Advisory). Additionally, administrators should restrict the search_path to exclude user-writable schemas and limit database CREATE privileges to trusted users only.
The vulnerability was published by Timescale maintainer svenklemm via GitHub Security Advisories on March 3, 2026, with an urgent recommendation to upgrade (GitHub Advisory). Red Hat tracked the issue via Bugzilla (Bug 2445265) and the Red Hat CVE advisory page, classifying it as high severity (Red Hat Bugzilla). Coverage appeared on The Hacker Wire and several vulnerability aggregation platforms shortly after disclosure, though no significant community controversy or notable researcher commentary beyond standard reporting has been observed.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."