Skip to main content

AWS pgcollection CVE-2026-96883

| EUVDEUVD-2026-86406 HIGH
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-09-24 AMZN
8.7
CVSS 4.0 · Vendor: AMZN
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to PostgreSQL as low-priv user
  2. Delivery
    Call collection retrieval/array-conversion function
  3. Exploit
    Supply mismatched type metadata
  4. Execution
    Trigger CWE-843 type confusion in datumCopy
  5. Persist
    Corrupt memory to hijack execution
  6. Impact
    Execute arbitrary code as postgres OS user

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the pgcollection extension (versions 2.0.0 through 2.1.1) to be installed in a target PostgreSQL database, and an authenticated remote database user (PR:L) with the ability to execute SQL that invokes pgcollection's collection value-retrieval or icollection_to_array array-conversion functions. Exploitation is limited by that authentication requirement (a valid, even low-privileged, database role is needed) and by the extension being a non-default, explicitly-installed add-on - databases without pgcollection or restricting SQL execution to trusted roles are not exposed. No user interaction beyond the attacker's own SQL is required (UI:N).

Impact

CVSS 4.0 base score 8.7 (HIGH) with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H, indicating a network-reachable, low-complexity, low-privilege attack yielding full confidentiality, integrity and availability impact on the vulnerable system - consistent with the CWE-843 type-confusion RCE described. The critical qualifier is PR:L: exploitation requires an authenticated database role able to execute SQL, so this is not a pre-auth internet worm but rather a privilege-escalation-to-OS-code-execution primitive (an authenticated PostgreSQL user gaining code execution as the postgres OS user, which typically breaks out of the SQL sandbox and compromises the whole database host). No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so the exploitation status is 'no public exploit identified at time of analysis.' The vendor (AWS/AMZN) has published an advisory (2026-118-aws), a GitHub Security Advisory (GHSA-g539-cj32-hv6r), and a fixed release (v2.1.2), and the release notes confirm the exact root cause (over-permissive can_coerce_type() replaced with exact/binary-coercible checks, plus a polymorphic icollection_to_array return-type fix). Real priority is moderate-to-high for the specific population running this extension: the impact is severe (OS-level RCE) and the fix is well-characterized, but the authenticated prerequisite and the niche footprint of the extension bound widespread mass-exploitation risk. No signals conflict; the main gap is the absence of exploitation-probability telemetry (EPSS) and POC data.

Exploit ScenarioDerived

An attacker who already holds a low-privileged but valid PostgreSQL login on a database with the pgcollection 2.0.0-2.1.1 extension installed submits crafted SQL that invokes collection value-retrieval or icollection_to_array conversion functions with mismatched type metadata. The type confusion causes datumCopy to operate on a datum representation inconsistent with the assumed type, corrupting memory and ultimately executing arbitrary code as the postgres OS user, breaking out of the SQL sandbox to compromise the host. No public exploit code is identified at time of analysis; the attack is remote and low-complexity but requires authenticated database access.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Sep 24, 2026

Type confusion in the AWS pgcollection PostgreSQL extension (versions 2.0.0 through 2.1.1) lets an authenticated remote database user execute arbitrary code as the postgres operating system user by submitting crafted SQL that triggers mismatched type metadata during collection value retrieval and array conversion. The flaw carries a CVSS 4.0 base score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H), reflecting a network-reachable, low-complexity attack that requires only a valid low-privileged database role but yields full confidentiality, integrity and availability impact. AWS has released pgcollection 2.1.2 as the fix; no public exploit code has been identified at time of analysis, and exploitation is constrained to databases where the non-default extension is actually installed and where an attacker can execute the affected SQL functions.

Earlier versions of this analysis (1)
v1 Sep 24, 2026 - 19:50 CVSS 8.8

Arbitrary code execution as the postgres OS user is possible in AWS pgcollection 2.0.0 through 2.1.1 via a type confusion flaw that allows an authenticated remote user with database privileges to supply crafted SQL statements. The vulnerability requires the pgcollection extension to be installed and enabled in a PostgreSQL database; attackers must have valid credentials and privileges to invoke collection value retrieval and icollection_to_array conversion functions. No public exploit code has been identified at time of analysis, and the CVSS 3.1 base score is 8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H).

RemediationAI

Upgrade the pgcollection extension to version 2.1.2 or later, the release that tightens type coercion in value retrieval and array conversion and corrects the two-argument icollection_to_array overload; see the release notes at https://github.com/aws/pgcollection/releases/tag/v2.1.2, the advisory at https://github.com/aws/pgcollection/security/advisories/GHSA-g539-cj32-hv6r, and the AWS bulletin at https://aws.amazon.com/security/security-bulletins/2026-118-aws/. Because the extension is a non-default, explicitly installed add-on, the most effective compensating control for systems that cannot patch immediately is to REVOKE EXECUTE on the pgcollection collection retrieval and icollection_to_array functions from PUBLIC and from all untrusted or application-facing roles, granting it only to roles that genuinely need it - the trade-off is that legitimate applications invoking those functions will break until the grant is restored. Where pgcollection is not in active use, DROP EXTENSION pgcollection removes the exposed attack surface entirely, at the cost of losing any dependent objects that reference its types. Restricting which roles can execute arbitrary SQL that reaches these functions and auditing database roles for least privilege limit who can reach the vulnerable code path (PR:L means only a valid, even low-privileged, role is needed). As an additional containment measure, ensure the PostgreSQL service account runs as a dedicated, minimally privileged operating system user so that postgres-user code execution does not translate into broader host compromise, and monitor for unusual backend crashes or memory-related errors in PostgreSQL logs as potential exploitation indicators.

Affected VersionsENISA

pgcollection 2.0.0 ≤2.1.1

Affected Packages

euvd pgcollection no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

pgcollection is an open-source PostgreSQL extension maintained by AWS that adds collection data types and conversion routines to the database, implemented in C and exposed to SQL as user-callable functions. CVE-2026-96883 is a CWE-843 type-confusion defect rooted in the extension's use of PostgreSQL's can_coerce_type() when retrieving collection values and converting them to arrays: that helper accepts coercions that are not representation-preserving, so datumCopy() can be invoked with type metadata that does not match the actual stored datum representation. The result is memory corruption within the backend process, which executes as the postgres operating system user, allowing a crafted SQL statement from an authenticated role to escalate from database-level code execution to OS-level code execution under that account. The vendor fix is instructive about the precise root cause: it replaces can_coerce_type() with an exact type match or an IsBinaryCoercible() check so datumCopy always uses metadata consistent with the stored datum, and it corrects the two-argument polymorphic overload of icollection_to_array so the output element type is derived from get_fn_expr_rettype() rather than assuming it matches the stored type. Regression tests for type coercion boundaries were added alongside these changes. The CPE cpe:2.3:a:aws:pgcollection:*:*:*:*:*:*:*:* and the EUVD record (EUVD-2026-86406) both scope the issue to pgcollection 2.0.0 through 2.1.1.

Know when Pgcollection gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (AMZN) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.9 CRITICAL

Authenticated DB user (PR:L) sends remote SQL (AV:N/AC:L) triggering type confusion that yields OS-level code execution beyond the SQL security scope (S:C), giving full C/I/A.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (AMZN).

CVSS VectorVendor: AMZN

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
CVSS changed
Sep 24, 2026 - 20:22 NVD
8.8 (HIGH) 8.7 (HIGH)
CVE Published
Sep 24, 2026 - 19:05 cve.org
HIGH 8.8

DescriptionCVE.org

pgcollection is an open source extension to PostgreSQL. A type confusion issue in AWS pgcollection 2.0.0 through 2.1.1 might allow an authenticated remote user to execute arbitrary code as the postgres operating system user via crafted SQL statements that rely on mismatched type metadata in collection value retrieval and array conversion functions.

To remediate this issue, users should upgrade to version 2.1.2 or later.

Technical POC Analysis

CWE-843, Access of Resource Using Incompatible Type ("Type Confusion").

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

AWS's pgcollection PostgreSQL extension (versions 2.0.0 through 2.1.1) contains a type-confusion flaw that lets an authenticated database user with only low-level privileges execute arbitrary code as the postgres operating system account. Any environment where this non-default extension is installed is therefore exposed to full loss of data confidentiality, integrity, and availability from a single valid database role. Leadership should prioritize remediation for the teams running this extension, while noting that exposure is limited to those installations.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 51% exploitable
Prevalence
Low
niche AWS PostgreSQL extension, must be explicitly installed
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy