Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-accessible via SQL (AV:N, AC:L); DML credentials required (PR:L); no integrity impact; high confidentiality from memory disclosure and high availability from backend crash on malformed data.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
3DescriptionCVE.org
TimescaleDB through 2.29.1, fixed in commit 517c13e, contains an out-of-bounds read in the Dictionary compression reverse row iterator (tsl/src/compression/algorithms/dictionary.c). The forward path validates the decoded index; the reverse path uses an assertion compiled out of release builds, leaving the 64-bit Simple8b index unvalidated and the read offset attacker-controlled. Attackers with DML access to a physical compressed relation can store a crafted datum and run a reverse-order scan. With a pass-by-value column type the out-of-bounds Datum is returned to the client as a normal column value, disclosing backend memory including the shared buffer pool, which SQL access control does not cover.
AnalysisAI
Out-of-bounds read in TimescaleDB's Dictionary compression reverse row iterator (versions through 2.29.1) allows an authenticated database user with DML privileges on a compressed hypertable to exfiltrate backend process memory-including the PostgreSQL shared buffer pool-as ordinary column values that bypass SQL access controls. The vulnerability arises because the forward decompression path validates the Simple8b-encoded dictionary index while the reverse path relied solely on a debug assertion stripped from release builds, leaving the read offset fully attacker-controlled. No public exploit has been identified at time of analysis, and a fix is available upstream via commit 517c13e and PR #10360, though a tagged release version has not been independently confirmed from the available data.
Technical ContextAI
TimescaleDB is a PostgreSQL extension implementing custom columnar compression algorithms for time-series data. The Dictionary compression algorithm (tsl/src/compression/algorithms/dictionary.c) uses Simple8b-encoded 64-bit indices to look up values in a dictionary. During forward iteration the decoded index is bounds-checked, but the reverse iterator (used when queries include ORDER BY DESC against compressed chunks) replaced that check with an Assert() macro that is compiled out in release builds. This left the 64-bit Simple8b index unvalidated in the reverse code path, making the resulting read offset into the decompressed buffer fully attacker-controlled-a textbook CWE-125 (Out-of-Bounds Read). The commit diff confirms that the fix replaces Assert() calls with CheckCompressedData() runtime validation throughout the reverse decompression path, adds cross-validation between forward and reverse iterators to detect malformed compressed data, and closes an edge case where a zero-element bit array produced an underflow in bucket counting. A second affected algorithm, DeltaDelta (deltadelta.c), received analogous validation hardening in the same PR.
RemediationAI
Monitor the TimescaleDB releases page for the first tagged version that incorporates PR #10360 (fix commit 517c13e) and upgrade immediately upon availability, as no confirmed patched release version is available from the provided data. As an immediate compensating control, revoke DML privileges (INSERT, UPDATE, COPY) on compressed hypertables from any untrusted or least-privilege database roles, since planting the crafted datum is a prerequisite for exploitation-read-only roles are not exploitable. Alternatively, disable Dictionary compression for sensitive columns by specifying alternative compression algorithms (e.g., gorilla or deltadelta for numeric types) using ALTER TABLE ... SET (timescaledb.compress_segmentby = ...) and recompressing affected chunks, though this may reduce compression ratios. Organizations running TimescaleDB in multi-tenant configurations should treat this as high priority until patched, given the cross-session memory disclosure potential. References: https://github.com/timescale/timescaledb/pull/10360
More in Timescaledb
View allArbitrary code execution in TimescaleDB 2.23.0 through 2.25.1 allows local authenticated users to execute malicious func
TimescaleDB, an open-source time-series SQL database, has a privilege escalation vulnerability in versions 2.8.0 through
Timescale TimescaleDB 1.x and 2.x before 2.5.2 may allow privilege escalation during extension installation. Rated high
Denial of service in TimescaleDB through 2.29.1 allows authenticated database users holding DML privileges on a compress
Out-of-bounds read in TimescaleDB's bulk text dictionary decompressor allows authenticated database users with DML acces
Same weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: ImportantShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54182
GHSA-mjw3-r56j-9698