Neutron, nuestro motor de IA, obtuvo un 97.1% en el benchmark CyberGym de UC Berkeley. Más información

Análisis a fondo

Análisis a fondo

Oracle PeopleSoft: RCE explotada por ShinyHunters (CVE-2026-35273)

RCE sin autenticación en PeopleTools 8.61 y 8.62 mediante una cadena SSRF hacia PSEMHUB: explotada como día cero por ShinyHunters y corregida el 10 de junio.

Resumen

CVE-2026-35273 es una toma de control remota sin autenticación de Oracle PeopleSoft, explotada como día cero y explotada de nuevo meses después de su corrección.

  • Tres fallos reportados por la Zero Day Initiative funcionan como una sola cadena: un SSRF en el Integration Gateway (PSIGW), una dirección de bucle invertido aceptada por defecto por el Environment Management Hub (PSEMHUB) y dos rutas de ejecución de código dentro de PSEMHUB. Oracle corrigió los tres bajo el CVE único en su alerta de seguridad del 10 de junio de 2026.
  • PeopleSoft Enterprise PeopleTools 8.61 y 8.62 son las versiones compatibles afectadas. CVSS v3.1 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), valorado por Oracle.
  • ShinyHunters (rastreado como UNC6240 por Mandiant y el Google Threat Intelligence Group) explotó la cadena como día cero del 27 de mayo al 9 de junio de 2026, sobre todo contra universidades, y de nuevo en una oleada más amplia en septiembre que alcanzó a educación superior, tecnología, servicios de TI, sanidad, agricultura, transporte y gobierno. CISA añadió el CVE a su catálogo KEV el 12 de junio.
  • Aplique el parche de la alerta de seguridad de Oracle del 10 de junio y permanezca en una versión de PeopleTools compatible. Hasta entonces, desactive o elimine el Environment Management Hub; el parche cierra la puerta pero no expulsa a un atacante que ya esté dentro.

¿Estoy afectado?

Está afectado si se cumplen ambas condiciones:

  • Su despliegue ejecuta PeopleSoft Enterprise PeopleTools 8.61 u 8.62, las dos versiones compatibles que el registro CVE lista como afectadas. Si ejecuta una versión de PeopleTools más antigua y sin soporte, la alerta de Oracle indica que esas versiones no se prueban frente a esta vulnerabilidad y que probablemente también estén afectadas. Trate la cadena como presente y planifique el paso a una versión compatible.
  • El Integration Gateway y el Environment Management Hub están desplegados, que es la instalación por defecto del Environment Management Framework. Ambos funcionan como aplicaciones Oracle WebLogic independientes, y la cadena necesita los dos: PSIGW para llegar a PSEMHUB y PSEMHUB para ejecutar código.

Confirme la versión de PeopleTools con su administrador o en My Oracle Support y compruebe las dos rutas que la cadena necesita. Ninguna pide autenticación. Pruebe el Integration Gateway desde fuera de su red, porque es el punto de entrada. Pruebe el Environment Management Hub desde el propio servidor PeopleSoft: la cadena lo alcanza a través de la pasarela desde la dirección de bucle invertido, así que basta con que esté desplegado, no expuesto:

# From a network outside your perimeter: the entry point should be unreachable
curl -s -o /dev/null -w "%{http_code}\n" https://<your-peoplesoft-host>/PSIGW/HttpListeningConnector
# On the PeopleSoft web server itself: any response means the Hub is deployed
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:<pia-port>/PSEMHUB/hub

En la primera prueba, cualquier respuesta que no sea un tiempo de espera agotado o un rechazo de conexión significa que el punto de entrada está expuesto y requiere las decisiones de exposición siguientes. En la segunda, cualquier respuesta significa que el Hub está desplegado: una regla de perímetro sobre /PSEMHUB/ por sí sola no detiene la cadena, porque la solicitud falsificada sale del propio servidor, así que desactive o elimine el Hub como se describe a continuación.

Rama Versiones afectadas Versión corregida
PeopleTools 8.61 8.61 (versión compatible) parche de la alerta de seguridad de Oracle, 10 de junio de 2026
PeopleTools 8.62 8.62 (versión compatible) parche de la alerta de seguridad de Oracle, 10 de junio de 2026
Versiones de PeopleTools más antiguas no probadas por Oracle; probablemente también afectadas, según la alerta sin parche; migre a una versión compatible y aplique el parche de la alerta

La alerta de seguridad de Oracle es la fuente primaria del parche y de la matriz de versiones exacta: https://www.oracle.com/security-alerts/alert-cve-2026-35273.html

Según su informe de junio de 2026, Mandiant notificó a más de 100 organizaciones globales cuyas direcciones IP se correlacionaban con puntos de conexión potencialmente vulnerables; el 68 por ciento eran instituciones de educación superior.

¿Cómo lo corrijo?

Aplique el parche de la alerta de seguridad de Oracle del 10 de junio de 2026 mediante su proceso habitual de parcheo de PeopleSoft y permanezca en una versión compatible. El informe de septiembre de Mandiant es explícito: las reglas de WAF y el bloqueo por ruta no sustituyen al parche.

Si aún no puede parchear, Mandiant, apoyándose en la guía de la alerta de seguridad de Oracle, detalla los pasos que eliminan la exposición que la cadena necesita:

  • En instalaciones multiservidor, desactive el servicio Environment Management Hub (EMHub) si no lo usa para aplicar parches. En instalaciones de un solo servidor, elimine por completo la aplicación PSEMHUB. Según Mandiant, restringir estos puntos de administración no rompe las sesiones de usuario normales.
  • Si no puede desactivar el servicio EMHub, bloquee el acceso externo a /PSIGW/HttpListeningConnector y /PSEMHUB/* en el perímetro de red o el firewall. La regla sobre /PSIGW/HttpListeningConnector es la que detiene esta cadena: la solicitud falsificada llega al Hub desde el propio servidor, así que nunca cruza el perímetro. La regla sobre /PSEMHUB/* sigue siendo útil, porque en la oleada de septiembre los atacantes también enviaron solicitudes directamente a un Hub expuesto.
  • Aplique cualquier regla sobre la ruta decodificada y normalizada. En la oleada de septiembre, ShinyHunters esquivó reglas WAF que bloqueaban /PSEMHUB/ solicitando /%50SEMHUB/: muchas reglas comparan el texto plano de la ruta, mientras el servidor PeopleSoft la decodifica y sirve la página. Mandiant advierte que los atacantes pueden usar cualquier variante codificada con porcentaje, con mayúsculas y minúsculas mezcladas o no normalizada de otro modo.

Si puede estar ya comprometido, trate todo host con un web shell como comprometido, preserve evidencia y rote todas las credenciales alcanzables desde el nivel PeopleSoft. ShinyHunters roba datos y después exige pago: prepárese para la extorsión. El parche cierra la puerta; las fuentes siguientes no afirman que expulse a quien ya está dentro.

¿Cuál es la causa raíz?

Oracle aisló el Environment Management Hub tras una lista de hosts permitidos que acepta por defecto la dirección de bucle invertido, y dejó que el Integration Gateway reenviara cualquier solicitud a cualquier URL; juntos, el muro se vuelve una puerta.

Bobby Gould de la ZDI, con Minh Giang y Lucas Miller de TrendAI Research, reportó la cadena a Oracle el 10 de junio de 2026 y publicó el desglose el 27 de octubre de 2026. Tres fallos en los dos componentes:

Fallo 1: SSRF en PSIGW (ZDI-CAN-31816). El Integration Gateway intercambia mensajes entre el servidor PeopleSoft y sistemas remotos mediante Listening y Target Connectors. Un POST a /PSIGW/HttpListeningConnector que nombre el gestor HttpTargetConnector permite al atacante elegir tanto la URL a la que la pasarela se conecta como la carga completa que reenvía, en el campo Data de la solicitud. La ZDI descompiló el gestor y no encontró validación de que el tráfico sea legítimo o vaya a un destino válido: toma la URL de destino de la solicitud del atacante, construye el objeto de solicitud, aplica el método HTTP y envía el contenido tal cual.

El habilitador: PSEMHUB acepta el bucle invertido por defecto. El Environment Management Hub es una interfaz de administración interna que solo debería responder a hosts de confianza. Su método validateClient compara el cliente solicitante con /envmetadata/config/allowedhosts.properties, y el archivo por defecto que se distribuye con PeopleSoft ya incluye una entrada localhost; el conjunto permitido también contiene el nombre de host y la IP resueltos del propio servidor. Una solicitud que llega a través del SSRF desde 127.0.0.1 parece provenir de la propia máquina y la comprobación de confianza pasa.

Fallo 2: control externo de la ruta de archivo en PSEMHUB (ZDI-CAN-31818). El gestor ExecuteProcessActivityCommand de PSEMHUB existe para permitir a clientes remotos escribir entradas de registro en el sistema de archivos del servidor. El llamador controla tanto el contenido del archivo, en el parámetro m_line, como la ruta absoluta en disco, en m_targetFile. El gestor no valida que la ruta apunte a un directorio de registro legítimo. Escribir un web shell JSP en la ruta WAR de PSEMHUB da ejecución de código inmediata con la cuenta de servicio de PeopleSoft.

Fallo 3: deserialización de datos no fiables en PSEMHUB (ZDI-CAN-31817). Con cualquier primitiva de escritura de archivos, un atacante coloca un archivo XML malicioso dentro de [docroot]/envmetadata/data/environment/. La próxima vez que la clase HubServlet de PSEMHUB se inicialice, tras un reinicio del sistema o del servicio, carga cada archivo de ese directorio y lo pasa al XMLDecoder de Java. XMLDecoder instancia y configura los objetos descritos en el XML durante el análisis, así que la carga del atacante se ejecuta antes de que la conversión a Environment lance una excepción. Esta ruta no necesita web shell y es menos probable que la detecten los métodos estándar.

¿Cómo se explota?

Toda la cadena es sin autenticación: nada en ella pide un inicio de sesión en PeopleSoft. Paso a paso, según el análisis de la ZDI:

  1. El atacante envía un POST a /PSIGW/HttpListeningConnector, nombra el gestor HttpTargetConnector, fija el destino en la dirección de bucle invertido (por ejemplo http://127.0.0.1:8000) y pone la solicitud interna en el campo Data.
  2. El Integration Gateway reenvía esa solicitud interna al destino de bucle invertido. Llega a PSEMHUB aparentando originarse en la propia máquina.
  3. validateClient compara al solicitante con allowedhosts.properties, encuentra la dirección de bucle invertido en la lista por defecto y devuelve verdadero.
  4. El atacante alcanza los gestores de comandos de PSEMHUB a través del SSRF y llama a ExecuteProcessActivityCommand, aportando el contenido del web shell en m_line y una ruta absoluta dentro del WAR de PSEMHUB en m_targetFile.
  5. El web shell se escribe en el directorio de la aplicación y las solicitudes hacia él ejecutan comandos con la cuenta de servicio de PeopleSoft. Alternativamente, la misma primitiva de escritura planta un archivo XML en envmetadata/data/environment/ y la carga se ejecuta vía XMLDecoder en el próximo reinicio del servicio, sin web shell que buscar.

En las campañas observadas, los atacantes fueron más lejos: el triaje de Mandiant de los servidores de staging de junio halló agentes MeshCentral disfrazados de servicios de Microsoft Azure y un script de movimiento lateral y desfiguración, y los datos robados a las víctimas aparecieron en el sitio de filtraciones de ShinyHunters. En la oleada de septiembre, Mandiant observó web shells JSP como x.jsp y u.jsp escritos en el WAR de PSEMHUB, un instalador troyanizado que portaba la puerta trasera SIDEEYE y ejecución de comandos sin archivos que no escribe nada en disco.

¿Cómo transcurre la cadena de ataque?

Una sola cadena de solicitudes, desde una posición de internet sin autenticación hasta la ejecución de código con la cuenta de servicio de PeopleSoft:

flowchart LR A["POST del atacante a
/PSIGW/HttpListeningConnector"] --> B["HttpTargetConnector reenvía
la carga a 127.0.0.1"] B --> C["validateClient de PSEMHUB encuentra
el bucle invertido en allowedhosts.properties"] C --> D["ExecuteProcessActivityCommand escribe
el contenido del atacante en su ruta"] D --> E["Web shell en el WAR de PSEMHUB
se ejecuta con la cuenta PeopleSoft"] C --> F["XML malicioso en
envmetadata/data/environment/"] F --> G["XMLDecoder lo ejecuta
en el próximo reinicio"] style C fill:#f8d7da

¿Qué puede hacer un atacante?

Una explotación con éxito da ejecución de código remoto sin autenticación con los privilegios de la cuenta de servicio de PeopleSoft en el nivel web. Mandiant señala que esta cuenta puede leer los archivos de configuración de PeopleSoft, las cadenas de conexión a la base de datos y los datos de la aplicación, y UNC6240 usó ese punto de apoyo para la pulverización de credenciales, el movimiento lateral, el robo de datos y la extorsión. Condiciones necesarias:

  • Acceso de red al listening connector de PSIGW y, a través de él, a PSEMHUB. Sin credenciales de PeopleSoft y sin interacción del usuario.
  • El Environment Management Framework desplegado con sus valores por defecto: PSEMHUB presente, allowedhosts.properties aún con la entrada de bucle invertido y el HttpListeningConnector de PSIGW alcanzable.
  • Solo para la ruta de deserialización, un reinicio del sistema o del servicio después de plantar el archivo XML.

¿Por qué funciona la corrección?

La alerta de seguridad de Oracle del 10 de junio de 2026 corrigió los tres fallos bajo el CVE único; la ZDI informa de que coordina con Oracle la asignación de un CVE distinto a cada uno. Ni la alerta de Oracle ni el artículo de la ZDI publican un diff del código fuente ni explican cómo se cierra cada uno de los tres fallos.

La solución temporal se deriva de la estructura de la cadena: las dos rutas de ejecución de código que describe la ZDI viven dentro de PSEMHUB, por lo que eliminar PSEMHUB rompe la cadena publicada aunque el SSRF de PSIGW permanezca, si bien ese SSRF aún puede alcanzar cualquier otro servicio en la dirección de bucle invertido. La oleada de septiembre muestra el límite de bloquear solamente: los atacantes se adaptaron a las reglas por ruta con /%50SEMHUB/, y por eso Mandiant afirma que el bloqueo por ruta no sustituye al parche de la alerta.

¿Cómo compruebo si me comprometieron?

Los informes de Mandiant de junio y septiembre de 2026 dan búsquedas concretas; ejecútelas sobre el período desde el 27 de mayo de 2026.

En los registros de acceso WebLogic de la PIA, busque solicitudes POST a /PSEMHUB/hub y /PSIGW/HttpListeningConnector procedentes de IP externas. Los socios legítimos de Integration Broker también envían POST al listening connector, así que compare cada origen con sus socios conocidos; un acierto desde una dirección externa desconocida anterior a su fecha de parche apunta a la cadena.

En la oleada de septiembre el mismo ataque aparece como /%50SEMHUB/, y los web shells se solicitan como archivos .jsp bajo esa ruta, así que decodifique la ruta y compárela sin distinguir mayúsculas y minúsculas:

# PIA WebLogic access log; decode the path first so /%50SEMHUB/ and other encoded forms match too
python3 -c 'import sys, urllib.parse; sys.stdout.writelines(urllib.parse.unquote(l) for l in open(sys.argv[1], errors="replace"))' <PS_CFG_HOME>/webserv/<domain>/servers/PIA/logs/PIA_access.log | grep -iE "POST /(PSEMHUB|PSIGW/HttpListeningConnector)|/PSEMHUB/[^ ]*\.jspx?"

En el sistema de archivos del nivel web de cada nodo WebLogic, no solo del primero que encuentre, busque los archivos que dejan la cadena y los web shells:

# JSP, JSPX and EXE files in the PSEMHUB and PORTAL WARs; flag any that are not part of the shipped product
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PORTAL.war \( -name "*.jsp" -o -name "*.jspx" -o -name "*.exe" \)
# XML files the deserialization path loads at the next restart; review any recently created or modified
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/envmetadata/data/environment -name "*.xml" -ls
# Unauthorized content in the hub's transactions directory
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war/envmetadata/transactions
# Unexpected logs, persistantstorage or scratchpad directories under PSEMHUB
find <PS_CFG_HOME>/webserv/<domain>/applications/peoplesoft/PSEMHUB.war -type d \( -name logs -o -name persistantstorage -o -name scratchpad \)

Después, los indicadores que publicó Mandiant, recuperados sobre todo de los servidores de staging del atacante en junio:

  • Binarios de agente MeshCentral llamados meshagent32-azure-ops.exe, meshagent64-azure-ops.exe y meshagent64-v2.exe, con la dirección de mando y control wss://azurenetfiles.net:443/agent.ashx codificada, un dominio que imita a Microsoft Azure NetApp Files.
  • Las IP de staging 142.11.200.186 a 142.11.200.190, con servidores Python SimpleHTTP en el puerto 8888, y 176.120.22.24, el espejo público del sitio de filtraciones de ShinyHunters al que los servidores de staging se conectaron por SSH.
  • Un script de movimiento lateral y desfiguración con el nombre de la víctima, [victim_abbreviation]_fanout.sh.
  • Tráfico SMB saliente (puerto TCP 445) de los servidores PeopleSoft hacia destinos externos no fiables en los registros de firewall y los datos NetFlow.
  • Del informe de septiembre: la dirección de mando y control de SIDEEYE 162.219.30.165 en los puertos TCP 3333 y 3334, y la infraestructura de MeshAgent en azurenetfiles.net, microsoft-entra.net, enroll.azuredevice.cloud y winmanage-me.network (104.219.234.138).

Cronología

  • 2026-05-27 al 2026-06-09: ShinyHunters (UNC6240) explota la cadena como día cero, antes de cualquier parche o aviso, sobre todo contra universidades. El entorno de staging del atacante se montó el 27 de mayo a las 22:14 UTC (Mandiant/GTIG).
  • 2026-06-09: los datos robados de organizaciones comprometidas aparecen en el sitio de filtraciones de ShinyHunters; informes públicos exponen directorios abiertos en los servidores de staging.
  • 2026-06-10: la ZDI reporta los tres fallos a Oracle; Oracle publica su alerta de seguridad fuera de banda que corrige los tres bajo CVE-2026-35273.
  • 2026-06-11: se publica el registro CVE con el vector CVSS v3.1 9.8; Mandiant y el GTIG publican su atribución e informan de que habían notificado a más de 100 organizaciones, el 68 por ciento en educación superior.
  • 2026-06-12: CISA añade CVE-2026-35273 a su catálogo KEV, fecha límite federal 15 de junio de 2026.
  • 2026-09-25: Mandiant informa de una nueva oleada de explotación masiva que usa la evasión del WAF con /%50SEMHUB/ y abarca educación superior, tecnología, servicios de TI, sanidad, agricultura, transporte y gobierno, con web shells en decenas de sistemas de todo el mundo.
  • 2026-10-27: la ZDI publica el desglose de los tres fallos del CVE único; se coordinan CVE separados para cada fallo con Oracle.
  • 2026-10-29: esta publicación.

De la oleada día cero de ShinyHunters en mayo al desglose de tres fallos de la ZDI en octubre
Figura 1: pasaron cinco meses entre la explotación día cero y la publicación de la causa raíz completa; el parche y la inclusión en KEV llegaron en junio con días de diferencia. Fuente: Mandiant/GTIG, Oracle, CISA KEV y ZDI, consultado el 29 de octubre de 2026

Preguntas frecuentes

¿Basta con bloquear la ruta PSEMHUB en mi firewall?

No. Mandiant es explícito en que el bloqueo por ruta no sustituye al parche, y la oleada de septiembre lo demostró: los atacantes solicitaron /%50SEMHUB/ y esquivaron las reglas que comparaban la ruta en texto plano, porque PeopleSoft decodifica la ruta y sirve la página. Bloquear ayuda hasta parchear, y la regla debe reconocer la forma decodificada.

¿Aplicar el parche expulsa a un atacante que ya esté dentro?

Ninguna fuente lo afirma. La alerta de Oracle no aborda el desalojo, y la guía de Mandiant de rotar todas las credenciales alcanzables desde el nivel PeopleSoft y buscar web shells asume que el atacante permanece. Parchee y luego trate el host como un incidente.

¿Solo se atacó al sector educativo?

La oleada de junio se concentró allí: el 68 por ciento de las más de 100 organizaciones notificadas por Mandiant eran instituciones académicas. El informe de septiembre de Mandiant describe una oleada más amplia en educación superior, tecnología, servicios de TI, sanidad, agricultura, transporte y gobierno, con web shells en decenas de sistemas de todo el mundo.

¿Es una vulnerabilidad o tres?

Tres. La ZDI reportó el SSRF de PSIGW (ZDI-CAN-31816), el control de ruta de archivo de PSEMHUB (ZDI-CAN-31818) y la deserialización de PSEMHUB (ZDI-CAN-31817) como vulnerabilidades distintas, y Oracle corrigió las tres bajo el CVE único de junio. La ZDI coordina con Oracle la asignación de un CVE distinto a cada una.

Ejecuto una versión de PeopleTools más antigua. ¿Estoy afectado?

El registro CVE y la alerta de Oracle listan 8.61 y 8.62, las versiones compatibles, como afectadas. La alerta indica que las versiones fuera de Premier Support o Extended Support no se prueban y probablemente también estén afectadas, así que trate la cadena como presente y migre a una versión compatible y parcheada.

Encuentre puntos de conexión PeopleSoft expuestos con Ostorlab

Use Ostorlab Attack Surface Discovery para inventariar los hosts expuestos a internet que posee y encontrar puntos de conexión PeopleSoft Integration Gateway y Environment Management Hub expuestos, las rutas /PSIGW/HttpListeningConnector y /PSEMHUB/ que esta cadena necesita, y verificar que ninguna es alcanzable desde fuera de su perímetro.

Referencias

  • ZDI, Bobby Gould, «CVE-2026-35273: SSRF to RCE in Oracle PeopleSoft», 27 de octubre de 2026: el desglose de los tres fallos, el análisis de validateClient, el comportamiento de la solicitud y el gestor de PSIGW, y ambas rutas de ejecución de código: https://www.zerodayinitiative.com/blog/2026/10/20/cve-2026-35273-ssrf-to-rce-in-oracle-peoplesoft (consultado el 29 de octubre de 2026)
  • Alerta de seguridad de Oracle CVE-2026-35273, 10 de junio de 2026: el parche, las versiones afectadas 8.61 y 8.62, la matriz de riesgo CVSS 9.8, los créditos de los investigadores y la nota sobre las versiones sin soporte: https://www.oracle.com/security-alerts/alert-cve-2026-35273.html (consultado el 29 de octubre de 2026)
  • Registro CVE-2026-35273: PeopleTools 8.61 y 8.62 afectados, CVSS v3.1 9.8, Oracle CNA: https://cveawg.mitre.org/api/cve/CVE-2026-35273 (consultado el 29 de octubre de 2026)
  • Catálogo KEV de CISA: CVE-2026-35273 añadido el 12 de junio de 2026, fecha límite federal 15 de junio de 2026, acción requerida según la BOD 26-04: https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-35273 (consultado el 29 de octubre de 2026)
  • Mandiant y Google Threat Intelligence Group, «ShinyHunters Targets Education Sector with Oracle PeopleSoft Exploit», 11 de junio de 2026: la atribución del día cero del 27 de mayo al 9 de junio, las más de 100 organizaciones notificadas con un 68 por ciento en educación superior, los indicadores de los servidores de staging, los agentes MeshCentral y la guía de remediación y búsqueda: https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-targets-education-sector-oracle-exploit (consultado el 29 de octubre de 2026)
  • Mandiant y Google Threat Intelligence Group, «ShinyHunters Renewed Mass Exploitation Campaign Targeting Oracle PeopleSoft», 25 de septiembre de 2026: la oleada ampliada a otros sectores, la evasión del WAF con /%50SEMHUB/, los indicadores de los web shells y de SIDEEYE, y la guía actualizada de búsqueda y rotación de credenciales: https://cloud.google.com/blog/topics/threat-intelligence/shinyhunters-renewed-mass-exploitation-campaign-targeting-oracle-peoplesoft (consultado el 29 de octubre de 2026)