El parche que Oracle publicó el 10 de junio de 2026 para PeopleSoft bajo un único identificador, CVE-2026-35273, cerró en realidad tres vulnerabilidades distintas repartidas entre dos componentes del producto. Lo contó el 27 de octubre Bobby Gould, de la Zero Day Initiative (ZDI) de TrendAI, que las reportó a Oracle y que ahora negocia con el fabricante un CVE para cada una, mientras Mandiant sigue viendo a ShinyHunters explotar la cadena contra servidores que confiaron en una regla de WAF.
Un SSRF en PSIGW, dos fallos en PSEMHUB y un solo CVE
El análisis de ZDI separa lo que Oracle empaquetó como un solo fallo del componente Updates Environment Management. La primera pieza, registrada como ZDI-CAN-31816, es un SSRF (Server-Side Request Forgery, falsificación de peticiones desde el servidor) en la pasarela de integración PSIGW. Su conector de escucha, /PSIGW/HttpListeningConnector, acepta un mensaje IBRequest sin autenticación y, si el mensaje señala al HttpTargetConnector, reenvía a la URL que indique el atacante el cuerpo completo que este haya puesto en el campo Data. Gould revisó el manejador, una función de más de 800 líneas, y no encontró ninguna comprobación de que el destino sea legítimo.
Esa pasarela tiene valor porque el segundo componente, el Environment Management Hub (PSEMHUB), protege sus endpoints con un método llamado validateClient que compara el host que llama con la lista del fichero envmetadata/config/allowedhosts.properties. La lista que PeopleSoft trae de fábrica incluye localhost junto al nombre y la IP del propio servidor. Un atacante externo que pida /PSEMHUB/hub directamente queda fuera, pero si usa el SSRF para que PSIGW haga la petición contra http://127.0.0.1:8000, la comprobación la ve llegar desde la máquina y la deja pasar.

El diagrama de ZDI resume la cadena. Una vez dentro del hub hay dos salidas. ZDI-CAN-31818 es un control externo de la ruta de fichero en el comando ExecuteProcessActivityCommand, pensado para que clientes remotos escriban entradas de log en el disco del servidor. Quien lo invoca controla el contenido (parámetro m_line) y la ruta absoluta de destino (m_targetFile), así que basta con escribir una webshell JSP dentro del directorio PSEMHUB.war para ejecutar comandos con la cuenta de servicio de PeopleSoft. ZDI-CAN-31817 es una deserialización de datos no confiables. Con cualquier primitiva de escritura, el atacante deja un XML malicioso en envmetadata/data/environment/ y espera. En el siguiente arranque del servlet HubServlet, la clase HubMBeanPersistance recorre esa carpeta y pasa cada fichero por XMLDecoder de Java, que instancia los objetos descritos en el XML antes de que falle la conversión al tipo esperado. No hace falta webshell, y por eso ZDI avisa de que es la vía con menos probabilidades de saltar las detecciones habituales.
CVE-2026-35273: SSRF to RCE in Oracle PeopleSoft. ZDI's Bobby Gould provides a deep dive into the bug(s) used in the recent PeopleSoft attacks. His analysis includes root cause and video demo. https://www.zerodayinitiative.com/blog/2026/10/20/cve-2026-35273-ssrf-to-rce-in-oracle-peoplesoft
ZDI anunció el artículo en Mastodon a las 16:42 UTC del 27 de octubre y lo cierra con una reflexión sobre la fama menor de este tipo de fallo: «the humble SSRF can open the door for complete compromise» (el humilde SSRF puede abrir la puerta a un compromiso completo). El blog explica que ZDI reportó el caso a Oracle el 10 de junio de 2026 tras una investigación conjunta de Gould con Minh Giang y Lucas Miller, de TrendAI Research, y que la asignación de identificadores separados sigue en coordinación con el fabricante.
Lo que Oracle, NVD y CISA dicen de CVE-2026-35273
Dato | Valor |
|---|---|
CVE | CVE-2026-35273 (ZDI-CAN-31816, ZDI-CAN-31818 y ZDI-CAN-31817 a la espera de identificadores propios) |
CVSS y vector | 9,8 según Oracle como CNA, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. NVD no añade puntuación propia |
Producto | Oracle PeopleSoft Enterprise PeopleTools, componente Updates Environment Management (servlets PSIGW y PSEMHUB) |
Versiones afectadas | 8.61 y 8.62. Oracle advierte de que las anteriores, sin soporte, probablemente también |
Versiones corregidas | Parches del Security Alert del 10 de junio de 2026, publicados en el documento de disponibilidad de PeopleSoft en My Oracle Support |
Explotación activa | Sí. Zero-day desde el 27 de mayo de 2026 y nueva oleada en septiembre. En KEV desde el 12 de junio de 2026 con plazo el 15 de junio |
CWE | CWE-306 según NVD y CISA, CWE-918 (SSRF) según las firmas de TrendAI |
Gravedad | Crítica |
El aviso de Oracle, publicado como Security Alert fuera del ciclo trimestral, no describe el fallo más allá de que es explotable por red sin credenciales y puede acabar en ejecución remota de código. Remite al documento de disponibilidad de parches de PeopleSoft en My Oracle Support, que exige cuenta de soporte, y recuerda que las versiones anteriores a 8.61 ya no se prueban aunque es probable que también estén afectadas. En el apartado de créditos figuran Gould, Miller y Giang.
La ficha en NVD reproduce la puntuación de Oracle como CNA, 9,8 con vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, y no añade puntuación propia. Clasifica el fallo como CWE-306, ausencia de autenticación para una función crítica, mientras que las firmas de TrendAI lo tratan como CWE-918, el identificador de los SSRF. Son dos lecturas del mismo problema, una centrada en el efecto y otra en el mecanismo. CISA lo incorporó al catálogo KEV el 12 de junio de 2026 con plazo de corrección para las agencias federales el 15 de junio, tres días, y lo marca como usado en campañas de extorsión conocidas.
De las universidades de mayo al /%50SEMHUB/ de septiembre
El informe de GTIG y Mandiant del 11 de junio de 2026 fechó la primera campaña entre el 27 de mayo y el 9 de junio, con el fallo todavía sin parche ni aviso público. Google atribuye la actividad a UNC6240, el nombre con el que sigue a ShinyHunters, y notificó a más de 100 organizaciones cuyas IP coincidían con endpoints vulnerables. El 68 % eran universidades y centros de educación superior, la mayoría en Estados Unidos. Los datos robados empezaron a aparecer en el sitio de filtraciones del grupo el 9 de junio.

La captura, redactada por GTIG, muestra el aviso final que el grupo publicó el 11 de junio y una entrada con más de 40 GB de registros de facturación y datos de un portal de campus. Parte de la investigación salió de un descuido de los propios atacantes. Michael R, que publica en X como nahamike01, encontró el 10 de junio cinco servidores de staging con directorios abiertos.
ShinyHunters, (or a group impersonating them) exposed several directories revealing ongoing targeting of PeopleSoft (Enterprise Resource Planning software) environments.
— Michael R (@nahamike01) June 10, 2026
Also visible were staging materials, including MeshCentral agents, and a defacement and credential spray…
GTIG confirmó en esos servidores, con direcciones consecutivas de 142.11.200.186 a 142.11.200.190, un fichero .bash_history idéntico en los cinco. El historial muestra la instalación de MeshCentral 1.1.59 a las 22:14 UTC del 27 de mayo, agentes de Windows disfrazados de servicios de Azure que llamaban a azurenetfiles.net, un script de propagación por SSH con credenciales fijas y una conexión final a 176.120.22.24, el espejo público del sitio de filtraciones.
Dos víctimas han hablado con nombre propio. La Universidad de Nottingham detectó actividad no autorizada en su plataforma Campus Solutions el 9 de junio y, en la página de su incidente, actualizada el 20 de septiembre, dice que el atacante «exploited a vulnerability in Oracle WebLogic» (explotó una vulnerabilidad en Oracle WebLogic), el servidor de aplicaciones sobre el que corre PeopleSoft, sin citar el CVE. Nissan Americas comunicó a la Fiscalía General de California, según recogió BleepingComputer el 29 de junio, que usa PeopleSoft para gestionar la información de su personal y que empleados actuales y antiguos de Estados Unidos, Canadá, México y Brasil pueden haber perdido datos bancarios, fiscales y de identificación.
El 25 de septiembre Mandiant publicó un segundo informe con una nueva oleada. El grupo había adaptado el exploit para pedir /%50SEMHUB/hub en lugar de /PSEMHUB/hub. El %50 es la P codificada, y las reglas de WAF y de proxy inverso que buscan la cadena literal antes de decodificar no la ven, mientras que WebLogic decodifica la ruta y entrega la petición al servlet. Antes de explotar, los servidores recibían entre cinco y quince POST con un objeto Java serializado que devolvía el sistema operativo sin escribir nada en disco. Mandiant lo deja escrito en su guía: «WAF rules and path-based blocking are not a substitute for patching» (las reglas de WAF y el bloqueo por ruta no sustituyen al parche).

El esquema de GTIG compara las dos rutas. En esta segunda campaña el grupo desplegó webshells en docenas de sistemas de educación superior, tecnología, servicios TI, sanidad, agricultura, transporte y administración pública. Las herramientas cambiaron. Dos webshells JSP de una línea, x.jsp para ejecutar comandos en hexadecimal y u.jsp para subir ficheros en trozos de 150 KB, un instalador troyanizado de 5,2 MB llamado Ple64.exe que carga en memoria el backdoor SIDEEYE con un C2 en 162.219.30.165, túneles de Neo-reGeorg y agentes de MeshAgent en Linux. Una cuarta parte de los comandos se ejecutó como root o SYSTEM. Cuatro días antes, el 22 de septiembre, ShinyHunters reivindicó el robo de datos de empleados y aspirantes del FBI a través de un zero-day de PeopleSoft, y un portavoz de la agencia confirmó a 404 Media la vía de entrada, aunque el FBI no ha publicado un comunicado con detalles y nadie ha vinculado ese ataque a CVE-2026-35273.
Fecha y hora | Hecho |
|---|---|
27 de mayo de 2026, 22:14 UTC | Los atacantes instalan MeshCentral 1.1.59 en sus servidores de staging. Mandiant fija aquí el inicio de la explotación como zero-day |
9 de junio de 2026 | La Universidad de Nottingham detecta actividad no autorizada en Campus Solutions. Primeros datos de PeopleSoft en el sitio de filtraciones de ShinyHunters |
10 de junio de 2026, 02:05 UTC | Michael R (nahamike01) publica en X los directorios abiertos de los servidores de staging |
10 de junio de 2026 | Oracle publica el Security Alert CVE-2026-35273 y acredita a Gould, Miller y Giang. ZDI data su reporte a Oracle ese mismo día |
11 de junio de 2026 | GTIG y Mandiant atribuyen la campaña a UNC6240 (ShinyHunters) y cifran en más de 100 las organizaciones avisadas |
12 de junio de 2026 | CISA incorpora el CVE al catálogo KEV con plazo de tres días. Horizon3 publica su prueba de explotación |
18 de junio de 2026 | TrendAI Research describe la cadena completa y la ejecución en reinicio dentro de la JVM |
29 de junio de 2026 | Nissan Americas notifica a la Fiscalía General de California el robo de datos de empleados a través de PeopleSoft |
25 de septiembre de 2026 | Mandiant documenta la segunda oleada con el bypass de WAF /%50SEMHUB/, SIDEEYE y Neo-reGeorg |
27 de octubre de 2026, 16:42 UTC | ZDI publica el análisis de Bobby Gould con los tres fallos y anuncia la petición de CVE separados |
Por qué un PeopleSoft parcheado puede seguir comprometido
El informe técnico de TrendAI Research, firmado por Jacob Santos el 18 de junio, explica por qué la vía de la deserialización deja tan poca huella. La ejecución no ocurre cuando entra la petición. Ocurre en el siguiente reinicio del nivel web y transcurre dentro de la JVM de WebLogic. No hay proceso hijo, no hay baliza saliente obligatoria y el pivote por SSRF apunta a localhost, así que ningún sensor de red lo cruza. Santos lo resume en una frase: «A quiet system is not a safe one» (un sistema silencioso no es un sistema seguro). El mismo informe indica que la cuenta que ejecuta el código es SYSTEM en Windows y psadm2 en Unix, y que el endurecimiento previo de Oracle con filtros de serialización no cubría la ruta de XMLDecoder, de modo que instalaciones al día en parches hasta el 9 de junio eran igual de vulnerables.
De ahí que Trend Micro, Mandiant y Rapid7 coincidan en que aplicar el parche no evicta a nadie. Un XML plantado en envmetadata/data/environment/ antes del parche sigue ahí y se ejecutará en el siguiente reinicio, y una webshell en PSEMHUB.war responde igual con el fallo corregido. Rapid7 recuerda que la ruta /PSIGW/HttpListeningConnector ya aparecía en 2017 en la cadena de explotación de CVE-2013-3821 descrita por Lexfo, y en nuestra cobertura de los webshells en Nextcloud por el CODE de Collabora vimos la misma secuencia de parche tardío y ficheros ajenos en el directorio web.
Estos comandos recorren los tres sitios donde queda rastro, con las rutas ajustadas a tu PS_CFG_HOME y al nombre del dominio PIA.
grep -iE '/(PSEMHUB|%50SEMHUB)/hub|/PSIGW/HttpListeningConnector' \
$PS_CFG_HOME/webserv/*/servers/PIA/logs/PIA_access.log | grep -vE ' (10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.0\.0\.1)'
find $PS_CFG_HOME/webserv/*/applications/peoplesoft/PSEMHUB.war \
$PS_CFG_HOME/webserv/*/applications/peoplesoft/PORTAL.war \
\( -name '*.jsp' -o -name '*.jspx' -o -name '*.exe' \) -newermt '2026-05-27' -ls
ls -la --time-style=full-iso $PS_CFG_HOME/webserv/*/applications/peoplesoft/PSEMHUB.war/envmetadata/data/environment/ \
$PS_CFG_HOME/webserv/*/applications/peoplesoft/PSEMHUB.war/envmetadata/transactions/Trend Micro advierte de dos falsos positivos que conviene excluir antes de dar la alarma: PeopleSoft Change Assistant y Veritas NetBackup escriben de forma legítima bajo envmetadata, y el tráfico interno del Integration Broker dispara firmas de red escritas para otros productos. Para quien tenga Vision One, Santos propone estas consultas en XDR Data Explorer, que sirven igual como plantilla para cualquier SIEM.
request:"/PSIGW/HttpListeningConnector" AND (request:"PSEMHUB/hub" OR request:"localhost" OR request:"127.0.0.1")
(objectFilePath:"envmetadata/transactions" OR objectFilePath:"envmetadata/data/environment")
AND NOT (processFilePath:"ChangeAssistant" OR processFilePath:"NetBackup" OR processFilePath:"bpbkar" OR processName:"psae")
objectFilePath:"PSEMHUB.war" AND objectFilePath:".jsp"Mandiant publica estos indicadores de las dos campañas. Los hashes de x.jsp y de los túneles varían según los saltos de línea y la clave de cifrado de cada despliegue, así que sirven para confirmar y no para descartar.
Tipo | Valor | Contexto |
|---|---|---|
IP | 5.199.162.157 | Controlador del ataque, escáner y receptor de callbacks HTTP (septiembre de 2026) |
IP | 104.219.234.138 | Staging de exfiltración y gestión remota, resuelve winmanage-me.network |
IP | 162.219.30.165 | C2 del backdoor SIDEEYE, control por TCP/3333 y datos por TCP/3334 |
dominio | winmanage-me.network | Infraestructura de MeshCentral usada en las intrusiones de septiembre |
dominio | azurenetfiles.net | C2 de los agentes MeshCentral disfrazados de Azure en mayo y junio |
IP | 142.11.200.186 | Servidor de staging con directorio abierto (junio de 2026) |
IP | 142.11.200.187 | Servidor de staging con directorio abierto (junio de 2026) |
IP | 142.11.200.188 | Servidor de staging con directorio abierto (junio de 2026) |
IP | 142.11.200.189 | Servidor de staging con directorio abierto (junio de 2026) |
IP | 142.11.200.190 | Servidor de staging con directorio abierto (junio de 2026) |
IP | 176.120.22.24 | Espejo público del sitio de filtraciones de ShinyHunters, destino SSH desde el staging |
hash SHA-256 | 48b4a0827da7bbfce9fb52464f8a659dea7a035189c52c506c0bfb4b1c3fe494 | x.jsp, webshell principal de ejecución de comandos en hexadecimal |
hash SHA-256 | 2bee941fb40519d0d1ec52bd79a8f63fc65aac6455c8f2d6b668e3360dfdb5d7 | u.jsp, servlet de subida de ficheros por trozos |
hash SHA-256 | 419c571ee38b7e7266d130c4b6bbc4dd0ef44d6e5f3bc02cc2cf73b762f07c86 | tunnel.jsp, túnel Neo-reGeorg |
hash SHA-256 | ba14419beb2ec0bb94cab6298c14d7fb3e1d819366fe378290c0c2a4d97f7e07 | tunnel.jspx, túnel Neo-reGeorg |
hash SHA-256 | 3ba215692665513abfffd4e815c5c45f2d41e5dcc4283a2a3b740930c5c417c3 | Ple64.exe, instalador troyanizado que carga SIDEEYE |
ruta de archivo | <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/x.jsp | Webshell de ejecución |
ruta de archivo | <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/u.jsp | Webshell de subida |
ruta de archivo | <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/Ple64.exe | Backdoor SIDEEYE en Windows |
ruta de archivo | <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/tunnel.jsp | Túnel Neo-reGeorg |
ruta de archivo | <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/tunnel.jspx | Túnel Neo-reGeorg |
Orden de trabajo para PeopleTools 8.61 y 8.62
- Comprueba la versión de PeopleTools y aplica el parche del Security Alert CVE-2026-35273 desde My Oracle Support en todas las instancias 8.61 y 8.62, incluidas las de desarrollo y pruebas, que suelen compartir red con producción.
- Desactiva el servicio Environment Management Hub en configuraciones multiservidor o retira la aplicación PSEMHUB en las de un solo servidor, tal y como indica Oracle en la guía del aviso. Mandiant confirma que no afecta a las sesiones de usuario de PIA.
- Si no puedes parchear hoy, bloquea en el perímetro /PSEMHUB/* y /PSIGW/HttpListeningConnector sobre la ruta normalizada, no sobre la cadena literal, y da por hecho que cualquier variante codificada o en mayúsculas y minúsculas llegará al servlet.
- Pasa los comandos del apartado anterior por los logs de acceso de PIA desde el 27 de mayo y por los directorios PSEMHUB.war, PORTAL.war y envmetadata. Si aparece una webshell, un XML ajeno o Ple64.exe, trata el host como comprometido y conserva evidencias antes de limpiar.
- Rota las credenciales que la cuenta de servicio de PeopleSoft puede leer: la cadena de conexión a la base de datos en psappsrv.cfg, las del Integration Broker y cualquier credencial de nube accesible desde el nivel web.
- Busca en los servidores de PeopleSoft y de base de datos archivos .tar, .tar.gz o .zst en directorios temporales o accesibles por web, procesos tar, zstd, rsync, sshpass o curl lanzados por la cuenta de servicio y transferencias salientes sostenidas, incluido rsync por el puerto 873 y SMB por el 445.
- Si confirmas acceso a datos personales, notifica a la AEPD en 72 horas y abre incidente con INCIBE-CERT si eres empresa o con CCN-CERT si eres administración pública, y prepárate para un contacto de extorsión, que es el patrón documentado de ShinyHunters.
Para dimensionar el daño, Horizon3 anunció el 12 de junio en X que había reproducido el fallo y publicado una prueba para su plataforma NodeZero, cuya gráfica llega al compromiso del host en 46 segundos. Un atacante con el exploit afinado no necesita mucho más.
🚨 We've reversed CVE-2026-35273 and released a Rapid Response test.
— Horizon3.ai (@Horizon3ai) June 12, 2026
This is a critical unauthenticated RCE in Oracle PeopleSoft PeopleTools. pic.twitter.com/FIYQYoejT4
Lo que ZDI y Oracle dejan pendiente
Hay tres cosas que a 28 de octubre nadie ha cerrado. La primera es el identificador. Mientras Oracle no publique los CVE separados que ZDI pide, un escáner que marque CVE-2026-35273 como corregido no distingue entre el SSRF de la pasarela y la deserialización del hub, y un cliente que haya mitigado solo el acceso externo a PSEMHUB no sabe si su PSIGW sigue reenviando lo que le manden. La segunda es la documentación: el aviso de Oracle sigue remitiendo a un documento que solo se lee con cuenta de soporte, lo mismo que ocurrió con el fallo de E-Business Suite que cubrimos el 27 de octubre, y la instrucción de desactivar el EMHub solo la conocemos por los informes de Mandiant.
La tercera es la exposición real. En el momento de escribir esta noticia no hemos encontrado un recuento público de Shodan, Censys o Shadowserver de instancias de PeopleSoft con PSIGW o PSEMHUB accesibles desde internet, ni en el mundo ni en España, y tampoco un aviso específico de INCIBE-CERT o CCN-CERT más allá de la ficha del CVE. Lo que sí sabemos es que el producto lleva nóminas, expedientes académicos y datos de recursos humanos, y que cuando ShinyHunters explotó el zero-day de BeyondTrust Remote Support durante meses el patrón fue el mismo: acceso silencioso, robo y extorsión semanas después. Un servidor de PeopleSoft reiniciado en junio con un XML plantado en mayo pudo ejecutar código sin que nadie lo viera, y el único registro de ese momento son los logs de arranque del nivel web, que en muchas instalaciones rotan antes de un mes.
Separar la pasarela del servlet de gestión, de modo que una petición originada en el propio servidor no satisfaga validateClient, es la medida estructural que Trend Micro propone y la que encaja con el enfoque de segmentación y Zero Trust que defendemos para cualquier aplicación que exponga una API de integración, como repasamos en nuestra guía para proteger las APIs. Hasta que Oracle publique los tres identificadores, el inventario de vulnerabilidades seguirá contando un fallo en un servidor que tiene tres puertas.




No hay comentarios todavía