CVE-2025-4207
Medium · 5.9CVSS
5.9
EPSS
0.8%
Published
May 8, 2025
CISA due date
—
Cloudanix analysis
A problem handling certain kinds of text input can briefly knock a database offline when bad data arrives.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer over-read in GB18030 encoding validation that triggers process termination on affected platforms, impacting the database server and libpq client library.
Why it matters to the business
Temporary loss of database availability for applications relying on PostgreSQL, with higher urgency due to 536 days since publication and potential widespread use through dependent packages.
How an attack unfolds
An attacker supplies specially crafted input using GB18030 encoding to a PostgreSQL instance or libpq client; the validation routine performs a one-byte over-read that causes the process to terminate on vulnerable platforms.
How to fix it
Upgrade PostgreSQL to versions 17.5, 16.9, 15.13, 14.18, or 13.21 or newer; for librenms/librenms apply the fix in commit c36bbdbda7e082dc04881b83e6ab978983bc9b4a.
How to confirm the fix worked
Confirm PostgreSQL version is at or above the listed fixed releases; test encoding validation with known GB18030 edge-case inputs to ensure no crash occurs.
Typical attack path
- Identify a PostgreSQL server or application using libpq that accepts untrusted input
- Craft and submit GB18030-encoded data designed to trigger the validation flaw
- Trigger the buffer over-read leading to process crash and denial of service
How to detect it
Review PostgreSQL server logs and application logs for unexpected process terminations or crashes during input processing; look for patterns involving GB18030 or multi-byte character handling around the time of availability issues.
What your security team should do
- Apply the listed PostgreSQL or librenms fixes immediately given the multi-month exposure window
- Monitor EPSS trend and reassess if exploit maturity changes
- Restrict untrusted input sources that can reach encoding validation paths until patched
The record
Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.18 | postgresql14 | 0 | 14.18-r0 |
| Alpine:v3.18 | postgresql15 | 0 | 15.13-r0 |
| Alpine:v3.19 | postgresql15 | 0 | 15.13-r0 |
| Alpine:v3.19 | postgresql16 | 0 | 16.9-r0 |
| Alpine:v3.20 | postgresql15 | 0 | 15.13-r0 |
| Alpine:v3.20 | postgresql16 | 0 | 16.9-r0 |
| Alpine:v3.21 | postgresql16 | 0 | 16.9-r0 |
| Alpine:v3.21 | postgresql17 | 0 | 17.5-r0 |
| Alpine:v3.22 | postgresql16 | 0 | 16.9-r0 |
| Alpine:v3.22 | postgresql17 | 0 | 17.5-r0 |
| Bitnami | postgresql | 0 | 13.21.0 |
| Debian:11 | postgresql-13 | 0 | 13.21-0+deb11u1 |
| Debian:12 | postgresql-15 | 0 | No fix |
| Debian:13 | postgresql-17 | 0 | No fix |
| Mageia:9 | postgresql13 | 0 | 13.21-1.mga9 |
| Mageia:9 | postgresql15 | 0 | 15.13-1.mga9 |
| SUSE:Enterprise Storage 7.1 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Enterprise Storage 7.1 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Enterprise Storage 7.1 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Enterprise Storage 7.1 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | postgresql16 | 0 | 16.9-150600.16.18.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | postgresql14 | 0 | 14.18-150600.16.17.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | postgresql15 | 0 | 15.13-150600.16.17.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP7 | postgresql15 | 0 | 15.13-150600.16.17.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | postgresql14 | 0 | 14.18-150600.16.17.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | postgresql16 | 0 | 16.9-150600.16.18.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | postgresql14 | 0 | 14.18-150600.16.17.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | postgresql16 | 0 | 16.9-150600.16.18.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP6 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP7 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | postgresql13 | 0 | 13.21-3.63.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | postgresql15 | 0 | 15.13-3.41.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | postgresql16 | 0 | 16.9-3.29.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | postgresql17 | 0 | 17.5-3.13.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | postgresql13 | 0 | 13.21-3.63.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | postgresql15 | 0 | 15.13-3.41.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | postgresql16 | 0 | 16.9-3.29.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | postgresql17 | 0 | 17.5-3.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Manager Proxy 4.3 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Manager Proxy 4.3 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Manager Proxy 4.3 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Manager Proxy 4.3 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| SUSE:Manager Server 4.3 | postgresql14 | 0 | 14.18-150200.5.58.1 |
| SUSE:Manager Server 4.3 | postgresql15 | 0 | 15.13-150200.5.41.1 |
| SUSE:Manager Server 4.3 | postgresql16 | 0 | 16.9-150200.5.29.1 |
| SUSE:Manager Server 4.3 | postgresql17 | 0 | 17.5-150200.5.13.1 |
| openSUSE:Leap 15.6 | postgresql13 | 0 | 13.21-150600.14.8.1 |
| openSUSE:Leap 15.6 | postgresql14 | 0 | 14.18-150600.16.17.1 |
| openSUSE:Leap 15.6 | postgresql15 | 0 | 15.13-150600.16.17.1 |
| openSUSE:Leap 15.6 | postgresql16 | 0 | 16.9-150600.16.18.1 |
| openSUSE:Leap 15.6 | postgresql17 | 0 | 17.5-150600.13.13.1 |
| openSUSE:Tumbleweed | postgresql13 | 0 | 13.21-1.1 |
| openSUSE:Tumbleweed | postgresql14 | 0 | 14.18-1.1 |
| openSUSE:Tumbleweed | postgresql15 | 0 | 15.13-1.1 |
| openSUSE:Tumbleweed | postgresql16 | 0 | 16.9-1.1 |
| openSUSE:Tumbleweed | postgresql17 | 0 | 17.5-1.1 |
Related vulnerabilities
- CVE-2025-1094 Improper neutralization of quoting syntax in PostgreSQL libpq functions… Also affects postgresql14
- CVE-2024-10979 Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged… Also affects postgresql14
- CVE-2024-10978 Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to… Also affects postgresql14
- CVE-2024-10977 Client use of server error message in PostgreSQL allows a server not trusted under… Also affects postgresql14
- CVE-2024-10976 Incomplete tracking in PostgreSQL of tables with row security allows a reused query to… Also affects postgresql14
- CVE-2023-5868 A memory disclosure vulnerability was found in PostgreSQL that allows remote users to… Also affects postgresql14
- CVE-2017-15098 Invalid json_populate_recordset or jsonb_populate_recordset function calls in PostgreSQL… Also affects postgresql14
- CVE-2017-7546 PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to… Also affects postgresql14