En resumen

Una falla en la extensión pgsql de PHP permite inyección SQL en aplicaciones que usan pg_insert(), pg_update(), pg_select() o pg_delete() con PostgreSQL. Afecta a sitios y sistemas en PHP 8.2, 8.3, 8.4 y 8.5 anteriores a las versiones corregidas. Actualiza PHP a 8.2.33, 8.3.33, 8.4.24 o 8.5.9 según la rama que uses.

Qué está pasando

La extensión pgsql de PHP, que conecta aplicaciones PHP con bases de datos PostgreSQL, tiene una falla en la función interna php_pgsql_convert(). Esta función se encarga de escapar los datos que entrega el usuario cuando la aplicación usa pg_insert(), pg_update(), pg_select() y pg_delete().

El problema es que los valores se escapan con PQescapeStringConn() y luego se envuelven en una cadena de tipo E'...'. Con standard_conforming_strings = on, que es el valor por defecto desde PostgreSQL 9.1, la barra invertida \ no se escapa. Así, un atacante puede incluir una barra antes de una comilla, cerrar la cadena antes de tiempo y agregar su propio código SQL a la consulta.

El aviso incluye un ejemplo en que un valor como zzz\' OR 1=1 -- hace que pg_select() devuelva todas las filas de la tabla. En la práctica, esto puede permitir leer, modificar o borrar datos a los que el usuario no debería tener acceso, dependiendo de cómo use la aplicación estas funciones.

La corrección cambia php_pgsql_convert() para que use cadenas sin escape en lugar de E'...', y está disponible en las versiones 8.2.33, 8.3.33, 8.4.24 y 8.5.9 de PHP.

Vulnerabilidades

CVECVSSDescripción
CVE-2026-17543—Inyección SQL (CWE-89) en ext-pgsql: php_pgsql_convert() envuelve los valores en E'...' sin escapar la barra invertida cuando standard_conforming_strings = on, lo que permite romper la cadena en pg_insert(), pg_update(), pg_select() y pg_delete().

Productos afectados

ProductoVersiones afectadasVersión corregida
PHP ext-pgsql (rama 8.2)< 8.2.338.2.33
PHP ext-pgsql (rama 8.3)< 8.3.338.3.33
PHP ext-pgsql (rama 8.4)< 8.4.248.4.24
PHP ext-pgsql (rama 8.5)< 8.5.98.5.9

Qué hacer ahora

  1. Actualiza PHP a la versión corregida de tu rama: 8.2.33, 8.3.33, 8.4.24 u 8.5.9.
  2. Verifica la versión instalada en cada servidor (por ejemplo, con php -v) y si la extensión pgsql está cargada (con php -m).
  3. Después de actualizar, reinicia el servicio que ejecuta PHP (PHP-FPM o el servidor web) y confirma que la nueva versión quedó activa.
¿No sabes si te afecta?

Te ayudamos a revisar sin costo si tus servidores o equipos usan una versión afectada por esta alerta, y qué conviene hacer primero.

Revisar si me afecta
Recomendación UpTech

Parte por identificar qué aplicaciones usan PHP con PostgreSQL; si tu sitio usa MySQL u otra base de datos, esta falla no te afecta directamente. Dentro de las que sí usan PostgreSQL, prioriza las expuestas a Internet y las que manejan datos de clientes, y pídele a tu equipo de desarrollo o proveedor que revise si el código usa pg_insert(), pg_update(), pg_select() o pg_delete() con datos que vienen de formularios o parámetros.

Algo que suele pasarse por alto: muchos servidores tienen más de una versión de PHP instalada, o usan los paquetes de la distribución Linux, que a veces aplican el parche sin cambiar el número de versión. Revisa cada servidor y cada versión de PHP en uso, y consulta el aviso de seguridad de tu distribución para confirmar qué paquete incluye la corrección.

Cómo te ayuda UpTech

Cerberus WAF

Cerberus WAF bloquea los ataques web más comunes (inyección SQL, XSS, SSRF, XXE) y los escáneres de vulnerabilidades antes de que lleguen a tu aplicación.

Conocer el servicio →
Servicios Gestionados TI

Con Gestión de Parches, las actualizaciones de seguridad de sistemas operativos y aplicaciones se aplican de forma programada, sin depender de que alguien lea esta alerta a tiempo.

Conocer el servicio →
Servicios Gestionados TI

Con el inventario automatizado de hardware y software sabes de inmediato qué equipos tienen la versión afectada.

Conocer el servicio →

Referencias

  1. https://github.com/php/php-src/security/advisories/GHSA-7qpv-r5mr-78m4
  2. https://www.cve.org/CVERecord?id=CVE-2026-17543
Basado en el aviso de seguridad oficial del proyecto PHP GHSA-7qpv-r5mr-78m4: SQL injection in ext-pgsql via E'...' backslash breakout. Traducción, resumen y recomendaciones: UpTech, con apoyo de IA. Antes de aplicar cambios, confirma las versiones en el aviso oficial del fabricante.