Julio de 2025: el caché de la Delivery API que se olvidó de mirar la API key
Si sirve contenido a través de la Content Delivery API de Umbraco, restringida detrás de una API key y con caché de salida activada, tuvo un agujero abierto casi todo julio. Los parches llegaron el 29.
Es lo único urgente del mes, y conviene leer la precondición dos veces porque la mayoría de las instalaciones no la cumplen. Lo que merece su atención es la forma del bug, no su severidad.
El caché no variaba según la cabecera que autorizaba el pedido
Aviso de seguridad del 29 de julio de 2025 — Andy Butland, escribiendo en el blog propio de Umbraco
Umbraco lo califica de moderado. Afectadas: 13.0.0–13.9.2, 15.0.0–15.4.3, 16.0.0–16.1.0. La Delivery API apareció en Umbraco 12, así que todo lo posterior entra en el rango si la funcionalidad está activa. Las correcciones son 13.9.3, 15.4.4 y 16.1.1, todas de parche, y los proyectos en Cloud que corrían la última minor se parchearon automáticamente ese mismo día.
El mecanismo es lo interesante. El aviso dice que "the caching doesn't vary by the header that contains the API key". Caché de respuesta indexado por path y query, autorización viajando en una cabecera, y las dos funcionalidades se componen en un caché que le entrega a alguien sin API key válida una respuesta que ya había sido autorizada. Contenido publicado y contenido en borrador, los dos. Umbraco dice que lo encontró en pruebas internas; el detalle está en GHSA-75vq-qvhr-7ffr.
Ninguna de las dos funcionalidades está mal por su cuenta. Ese es justamente el punto. Si heredó una implementación headless de Umbraco de otra agencia, "¿alguien activó el caché de salida de la Delivery API?" pasó a ser una pregunta con una respuesta incorrecta.
uSync publicó tres veces en nueve días, y todo era deuda del pase desde v13
Kevin Jump publicó v16.0.1 el 15 de julio, v13.3.0 el 22 y v16.0.2 el 23. Leídas juntas, dibujan el mapa de por dónde sigue sangrando el pase de v13 a v16.
16.0.1 son correcciones "around migrating RTE values with block elements in them from v13 sites",
en sus palabras, y el changelog muestra recursión a nivel de bloque agregada a los mappers de
texto enriquecido. Así que si sus content types cruzaron con los bloques del RTE destrozados, no
lo estaba haciendo mal: el mapper no bajaba a los bloques hasta esa release. 13.3.0 extiende la
funcionalidad de roots con una interfaz ISyncFile, que es lo que permite traer carpetas de
paquetes y de otros proyectos al mismo árbol de sincronización. 16.0.2 corrige el picker de grupos
de miembros y reduce los falsos positivos de la comparación XML sobre roots.
Tres releases de un solo mantenedor, en nueve días, sobre el camino de actualización por el que pasa la mayor parte del trabajo de migración de este ecosistema. Eso no es una queja contra él.
La hoja de ruta nombró MCP; un blogger ya lo tenía conectado a dos CMS
Qué sigue para Umbraco — Filip Bech-Larsen, CTO, en el blog propio de Umbraco — es el fabricante declarando intenciones sobre sus propios productos, así que léalo como intención y no como compromiso. Nombra cuatro cosas: el servidor MCP de la comunidad convertido en el oficial, con versión estable cerca; Umbraco Compose, un producto SaaS todavía sin lanzar para orquestar datos, en beta privada; una capa de abstracción de búsqueda con webhooks e integraciones de terceros como siguiente paso; y un backoffice de Engage reconstruido antes de la próxima LTS. Ninguna de esas cosas lleva fecha.
Y después está Sincronización de contenido sin código con servidores MCP para Sitecore y Umbraco, en jeroenbreuer.nl. Nuestro registro no tiene autor para esa página; el único lugar donde aparece un nombre es la propia descripción del sitio, que nombra a Jeroen Breuer, y no vamos a ascender una descripción de sitio a firma de artículo. Quien sea que lo escribió: dos servidores MCP, un bloque de configuración JSON, dos prompts de chat, y un ítem de FAQ se mueve de Umbraco a Sitecore y de vuelta sin una línea de código de mapeo. Quinientas palabras que demuestran la hoja de ruta mejor que el propio post de la hoja de ruta.
Si está decidiendo si MCP ya sirve para operaciones de contenido, ese post es la foto honesta. Credenciales en texto plano en la configuración. Llamadas reintentando porque el primer payload no coincidía con el esquema del destino. Alcanza para probar la idea, y está lejísimos de ser una herramienta de migración.
Tres de los catorce ítems del mes eran crónicas de Codegarden, y las dos personales las escribió gente de Umbraco
La conferencia fue en junio. Las crónicas llegaron en julio, lo cual es normal, y que sean cariñosas también. Lo que vale la pena nombrar es quién las escribió.
Codegarden 2025 — Rick Butterfield — es el relato más completo, y adentro anuncia que le habían ofrecido un puesto en Umbraco HQ, en el equipo de Commercial Products, arrancando el 1 de septiembre. Codegarden 2025: una comunidad, no una secta — Corné Hoskam — está escrito desde adentro de HQ; cuenta que asistió como parte del equipo y ya no como MVP. Los dos lo dicen abiertamente y ninguno esconde nada. Pero el relato público de la conferencia del fabricante, un mes después, es en buena medida el del propio fabricante. Los datos que sobreviven a eso: Compose y el servidor MCP oficial fueron los dos anuncios del keynote, y el comentario de Butterfield de que el bloque de producto "felt a bit too long this year" es la crítica más filosa que publicó alguien.
La tercera crónica, Web Hacking 101 — Steven Harland, en el blog de Umbraco — cubre un taller de Burp Suite montado sobre una aplicación Umbraco deliberadamente vulnerable, salido del trabajo del Umbraco Community Security and Privacy Team. Léalo al lado del aviso de más arriba.
El cuarto ítem del blog de Umbraco, Lo que Lituania nos puede enseñar sobre ciberseguridad empresarial, de Zoja Antuchevič, CEO y socia de SOLUTIONLAB PRODUCTION, es un post invitado sobre política nacional de ciberseguridad que nunca menciona el CMS. Está en esta lista porque cayó dentro de la ventana, no porque cambie algo de lo que usted hace el lunes.
Las notas de campo son donde julio se ganó el sueldo
Agregar 2FA (con códigos de recuperación) para miembros de Umbraco — Rick Butterfield — es lo más útil que se publicó este mes. El doble factor para miembros está documentado; los códigos de recuperación no, y él atribuye el hueco a documentación que "assuming you'll use Umbraco's built in methods that aren't very visible". El código que funciona está en un repositorio público. Está escrito contra v13 y él no lo probó en v16, así que confirme antes de copiarlo.
La forma más rápida de agregar una fuente propia al nuevo backoffice de
Umbraco
— del mismo autor — son cuatrocientas palabras sobre por qué el Shadow DOM se come la tipografía
de marca en los previews de bloques, y el manifiesto backofficeEntryPoint que carga la hoja de
estilos lo bastante temprano como para que cascade. Cualquiera que use BlockPreview en un sitio de
cliente chocó con esto y le echó la culpa a otra cosa.
Cómo ahorré 5GB de almacenamiento por año en UMB.FYI — Matt Brailsford, que edita el boletín UMB.FYI del que está escribiendo — son 215KB de HTML para un correo de puro texto, causados por selectores CSS globales que se inlinean sobre cada elemento que matchea, contra el umbral de recorte de Gmail de ~102KB. No es un problema de Umbraco, pero sí uno con el que se va a encontrar cualquiera que mande correo generado desde Umbraco. UMB.FYI suma un atajo de iOS para tips, del mismo autor, agrega un atajo del menú de compartir para mandarle enlaces.
Lo que estamos mirando
El único riesgo real de julio salió de dos funcionalidades que por separado son seguras y juntas no lo son. Eso no es un error de programación, es un error de composición, y los errores de composición son lo que producen estructuralmente las arquitecturas por capas y orientadas a API. No se encuentran revisando ninguna de las dos funcionalidades.
Que es lo incómodo de la hoja de ruta publicada el mismo mes. Compose orquestando datos externos, servidores MCP escribiendo dentro del CMS desde una ventana de chat, búsqueda abarcando sistemas que el CMS no controla: cada una de esas cosas es otro par de funcionalidades seguras por separado. El aviso de la Delivery API es chico. La clase a la que pertenece no lo es, y es la clase de la que Umbraco está construyendo más.
Mientras tanto, el camino de actualización que sostiene el trabajo de migración de este ecosistema es el paquete de una sola persona, parcheado tres veces en nueve días. Si tiene presupuesto para un pase de v13 a v16, una parte debería llegarle a Kevin Jump.
Fuentes
Los títulos se conservan en su idioma original: así es como se cita un documento y así es como lo vas a encontrar.
- Security Advisory, July 29, 2025: Security Patches are now available — Andy Butland, Umbraco — Official blog
- What's Next for Umbraco — Filip Bech-Larsen, Umbraco — Official blog
- Codegarden 2025 — Rick Butterfield
- KevinJump/uSync v16.0.1 - Happy donkey — Kevin Jump
- The quickest way to add a custom font to the new Umbraco backoffice — Rick Butterfield
- Web Hacking 101: Hands-On Security Workshop at Codegarden — Steven Harland, Umbraco — Official blog
- What Lithuania Can Teach Us About Enterprise Cybersecurity — Zoja Antuchevič, CEO and Partner at SOLUTIONLAB PRODUCTION, Umbraco — Official blog
- KevinJump/uSync v13.3.0 - Roots update — Kevin Jump
- KevinJump/uSync v16.0.2 - buzzing bee — Kevin Jump
- No-code content sync with MCP servers for Sitecore and Umbraco — sin firma en la página, jeroenbreuer.nl
- UMB.FYI Gets an iOS Tip Shortcut — Matt Brailsford
- Codegarden 2025: A Community, Not a Cult! — Corné Hoskam
- How I Saved 5GB of Storage Per Year for UMB.FYI — Matt Brailsford
- Adding 2FA (+ recovery codes) for Umbraco Members — Rick Butterfield