---
id: "CVE-2026-116309"
page: "https://infrastack.ai/live/CVE-2026-116309"
kind: "vulnerability"
aliases: ["CVE-2026-116309"]
title: "PostgreSQL: plperl type confusion may let an object creator run code"
severity: "high"
cvss: 8.8
epss: null
exploited: false
status: "open"
category: "runtime"
products: [{"name": "PostgreSQL", "fixed": [], "affected": "", "ecosystem": "vendor"}]
ecosystems: ["vendor"]
tags: ["database", "postgresql", "runtime", "self-hosted"]
not_affected_if: ["patched-version", "plperl-not-installed"]
published_at: "2026-11-12T15:17:38+00:00"
first_seen_at: "2026-11-12T15:41:53+00:00"
updated_at: "2026-11-12T15:43:38+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116309", "first_seen_at": "2026-11-12T15:41:53+00:00"}]
exploit_sources: []
---

# PostgreSQL: plperl type confusion may let an object creator run code

Link for people: https://infrastack.ai/live/CVE-2026-116309 (this .md is for agents)

A type confusion flaw in PostgreSQL's plperl extension lets a user who creates Perl objects blessing a non-hash reference into PostgreSQL::InServer::ARRAY potentially execute arbitrary code. The maintainers have not confirmed that the pointer can be controlled enough to reach that impact, but they are treating it as possible.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- vendor:PostgreSQL affected range not listed fixed no fixed version listed

## How to check

- Check the server version with `postgres --version` or `SELECT version();`; versions before `18.7`, `17.12`, `16.16`, `15.20` and `14.25` are affected.
- Check whether the plperl extension is installed with `SELECT * FROM pg_extension WHERE extname = 'plperl';` (or `plperlu`).

## Fix

- PostgreSQL `18.7`, `17.12`, `16.16`, `15.20` and `14.25` or later.

## Timeline

- 2026-11-12T15:41:53+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116309

## From the sources

Type confusion in PostgreSQL plperl may allow an object creator to execute arbitrary code, via blessing a non-hash reference into PostgreSQL::InServer::ARRAY.  We have not confirmed or ruled out a way to control the pointer sufficiently to achieve security impact, but we are proceeding as though that is possible.  Versions before PostgreSQL 18.7, 17.12, 16.16, 15.20, and 14.25 are affected.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
