Fix CVE(s): CVE-2026-14669
* SECURITY UPDATE: Heap buffer overflow in to_char(timestamptz). DCH_to_char() copies the timezone abbreviation into a DCH_MAX_ITEM_SIZ-budgeted workspace with an unchecked strcpy(), and any client can select a longer POSIX abbreviation via SET TIME ZONE (CVSS 8.8, arbitrary code execution as the database OS user). - debian/patches/CVE-2026-14669.patch: reject POSIX timezone abbreviations longer than n->key->len * DCH_MAX_ITEM_SIZ in the TZ/tz items of DCH_to_char() with an error, instead of strcpy()ing them past the palloc'd buffer (upstream 3d724bf4fd by Tom Lane, carried on REL_14_STABLE inside 5fb3c63 and shipped in 14.24; applies verbatim to 12.22). - CVE-2026-14669
- Products
- libecpg-compat3, libecpg-dev, libecpg6, libpgtypes3, libpq-dev, libpq5, postgresql-12, postgresql-client-12, postgresql-doc-12, postgresql-plperl-12, postgresql-plpython3-12, postgresql-pltcl-12, postgresql-server-dev-12
- Affected versions
- Not specified
- Fixed versions
- 12.22-0ubuntu0.20.04.4+tuxcare.els2
- CVEs
- CVE-2026-14669
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 10:59 UTC · Revision 1
Source evidence
* SECURITY UPDATE: Heap buffer overflow in to_char(timestamptz). DCH_to_char() copies the timezone abbreviation into a DCH_MAX_ITEM_SIZ-budgeted workspace with an unchecked strcpy(), and any client can select a longer POSIX abbreviation via SET TIME ZONE (CVSS 8.8, arbitrary code execution as the database OS user). - debian/patches/CVE-2026-14669.patch: reject POSIX timezone abbreviations longer than n->key->len * DCH_MAX_ITEM_SIZ in the TZ/tz items of DCH_to_char() with an error, instead of strcpy()ing them past the palloc'd buffer (upstream 3d724bf4fd by Tom Lane, carried on REL_14_STABLE inside 5fb3c63 and shipped in 14.24; applies verbatim to 12.22). - CVE-2026-14669
osv:CLSA-2026-1788785141
libecpg-compat3
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
libecpg-dev
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
libecpg6
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
libpgtypes3
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
libpq-dev
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
libpq5
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-client-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-doc-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-plperl-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-plpython3-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-pltcl-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
postgresql-server-dev-12
Fixed versions: 12.22-0ubuntu0.20.04.4+tuxcare.els2
Complete source record
{
"id": "244f9016010de987cf6985f7fa0f0c0002beedd8804020b09ca3d1677d557c76",
"url": "https://osv.dev/vulnerability/CLSA-2026-1788785141",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Fix CVE(s): CVE-2026-14669",
"summary": "* SECURITY UPDATE: Heap buffer overflow in to_char(timestamptz). DCH_to_char() copies the timezone abbreviation into a DCH_MAX_ITEM_SIZ-budgeted workspace with an unchecked strcpy(), and any client can select a longer POSIX abbreviation via SET TIME ZONE (CVSS 8.8, arbitrary code execution as the database OS user). - debian/patches/CVE-2026-14669.patch: reject POSIX timezone abbreviations longer than n->key->len * DCH_MAX_ITEM_SIZ in the TZ/tz items of DCH_to_char() with an error, instead of strcpy()ing them past the palloc'd buffer (upstream 3d724bf4fd by Tom Lane, carried on REL_14_STABLE inside 5fb3c63 and shipped in 14.24; applies verbatim to 12.22). - CVE-2026-14669",
"evidence": "osv:CLSA-2026-1788785141",
"products": [
{
"name": {
"value": "libecpg-compat3",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libecpg-dev",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libecpg6",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpgtypes3",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpq-dev",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/4/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "libpq5",
"evidence": "/affected/5/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/5/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-12",
"evidence": "/affected/6/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/6/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-client-12",
"evidence": "/affected/7/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/7/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-doc-12",
"evidence": "/affected/8/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/8/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-plperl-12",
"evidence": "/affected/9/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/9/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-plpython3-12",
"evidence": "/affected/10/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/10/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-pltcl-12",
"evidence": "/affected/11/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/11/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "postgresql-server-dev-12",
"evidence": "/affected/12/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "12.22-0ubuntu0.20.04.4+tuxcare.els2",
"evidence": "/affected/12/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1788785141",
"aliases": [
"CLSA-2026-1788785141"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libecpg-compat3",
"purl": "pkg:deb/tuxcare/libecpg-compat3?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libecpg-dev",
"purl": "pkg:deb/tuxcare/libecpg-dev?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libecpg6",
"purl": "pkg:deb/tuxcare/libecpg6?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libpgtypes3",
"purl": "pkg:deb/tuxcare/libpgtypes3?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libpq-dev",
"purl": "pkg:deb/tuxcare/libpq-dev?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "libpq5",
"purl": "pkg:deb/tuxcare/libpq5?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-12",
"purl": "pkg:deb/tuxcare/postgresql-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-client-12",
"purl": "pkg:deb/tuxcare/postgresql-client-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-doc-12",
"purl": "pkg:deb/tuxcare/postgresql-doc-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-plperl-12",
"purl": "pkg:deb/tuxcare/postgresql-plperl-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-plpython3-12",
"purl": "pkg:deb/tuxcare/postgresql-plpython3-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-pltcl-12",
"purl": "pkg:deb/tuxcare/postgresql-pltcl-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "12.22-0ubuntu0.20.04.4+tuxcare.els2"
}
]
}
],
"package": {
"name": "postgresql-server-dev-12",
"purl": "pkg:deb/tuxcare/postgresql-server-dev-12?distro=ubuntu-20.04",
"ecosystem": "TuxCare:Ubuntu:20.04"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/ubuntu20.04els/CLSA-2026-1788785141.json"
}
}
],
"modified": "2026-10-26T09:31:40.142890830Z",
"provider": "osv",
"upstream": [
"CVE-2026-14669"
],
"references": [
"https://errata.tuxcare.com/els_os/ubuntu20.04els/CLSA-2026-1788785141.html",
"https://nvd.nist.gov/vuln/detail/CVE-2026-14669"
]
},
"related_cves": [
{
"value": "CVE-2026-14669",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 448017,
"published_at": "2026-09-07T12:45:51+00:00"
}