{"id":22333,"date":"2026-07-17T10:22:42","date_gmt":"2026-07-17T10:22:42","guid":{"rendered":"https:\/\/www.securitytoday.de\/2026\/07\/17\/ci-cd-publico-el-cargador-de-botnet-asyncapi\/"},"modified":"2026-07-17T17:27:15","modified_gmt":"2026-07-17T17:27:15","slug":"ci-cd-publico-el-cargador-de-botnet-asyncapi","status":"publish","type":"post","link":"https:\/\/www.securitytoday.de\/es\/2026\/07\/17\/ci-cd-publico-el-cargador-de-botnet-asyncapi\/","title":{"rendered":"CI\/CD public\u00f3 el cargador de botnet AsyncAPI"},"content":{"rendered":"<p style=\"color:#69d8ed;font-size:0.9em;margin:0 0 16px;padding:0;\">6 Min. Tiempo de lectura<\/p>\n<p><strong>Cuatro paquetes AsyncAPI-npm se ejecutaron el 14. julio 2026 con OIDC v\u00e1lida y aun as\u00ed entregaron un cargador de bot de m\u00faltiples etapas. El punto de entrada estuvo en la CI: una workflow de pull_request_target mal configurada, luego un push al branch de release mediante credenciales vinculadas al bot. npm Trusted Publishing sigui\u00f3 siendo t\u00e9cnicamente limpio y no detect\u00f3 la vulnerabilidad de confianza anterior.<\/strong><\/p>\n<div style=\"background:#003340;color:#fff;padding:32px 36px;margin:32px 0;border-radius:8px;\">\n<p style=\"margin:0 0 18px 0;font-size:0.95em;font-weight:800;text-transform:uppercase;letter-spacing:0.2em;color:#69d8ed;border-bottom:2px solid rgba(105,216,237,0.25);padding-bottom:12px;\">Lo m\u00e1s importante en resumen<\/p>\n<ul style=\"margin:0;padding-left:22px;color:rgba(255,255,255,0.92);line-height:1.6;\">\n<li style=\"margin-bottom:12px;\"><strong style=\"color:#69d8ed;\">El inicio estuvo en la CI-Misconfig, muy antes del token del registro.<\/strong> pull_request_target con checkout del Head no confiable, amplio GITHUB_TOKEN y posterior push del bot: Exfiltraci\u00f3n de secretos y compromiso de rama van juntos.<\/li>\n<li style=\"margin-bottom:12px;\"><strong style=\"color:#69d8ed;\">Carga en require(), la runtime activa era m\u00e1s estrecha que el paquete.<\/strong> ShellExec, Persistencia y C2 se ejecutaron. Recolecci\u00f3n, Propagaci\u00f3n y Evitaci\u00f3n estaban en el paquete, estaban en esta entrega mediante conmutador desactivado.<\/li>\n<li><strong style=\"color:#69d8ed;\">Lockfiles de la ventana 07:10-11:18 UTC siguen siendo riesgosos.<\/strong> npm despublic\u00f3 las versiones; los pines existentes y los caches de CI no.<\/li>\n<\/ul>\n<\/div>\n<p style=\"font-size:0.88em;color:#666;margin:20px 0 32px 0;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;padding:10px 0;\"><span style=\"color:#004a59;font-weight:700;text-transform:uppercase;font-size:0.72em;letter-spacing:0.14em;margin-right:14px;\">Relacionado:<\/span><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/07\/11\/un-paquete-npm-que-robo-las-claves-privadas\/\" style=\"color:#333;text-decoration:underline;\">Un paquete npm que rob\u00f3 las claves privadas<\/a>&nbsp;&nbsp;<span style=\"color:#ccc;\">\/<\/span>&nbsp;&nbsp;<a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/26\/mini-shai-hulud-el-gusano-npm-devora-la-cadena-de-suministro\/\" style=\"color:#333;text-decoration:underline;\">Mini Shai-Hulud: gusano de cadena de suministro npm y defensa<\/a><\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Qu\u00e9 ocurri\u00f3 exactamente<\/h2>\n<p>El 14. julio 2026 a las 06:58 UTC se realiz\u00f3 un commit en la rama next del repositorio asyncapi\/generator bajo la identidad de marcador de posici\u00f3n \u00abYour Name\u00bb \/ you@example.com. Doce minutos despu\u00e9s, el leg\u00edtimo workflow release-with-changesets.yml public\u00f3 tres paquetes con provenci\u00f3n npm-OIDC v\u00e1lida: @asyncapi\/generator@3.3.1, @asyncapi\/generator-helpers@1.1.1 y @asyncapi\/generator-components@0.7.1.<\/p>\n<p>Seg\u00fan el blog de seguridad de Microsoft, el acceso inicial se produjo antes a trav\u00e9s de PR #2155 contra el workflow manual-netlify-preview.yml. El workflow utiliz\u00f3 pull_request_target y verific\u00f3 el commit head no confiable. El GITHUB_TOKEN ten\u00eda privilegios amplios; las credenciales de checkout permanecieron en la configuraci\u00f3n local de Git hasta el post\u2011tarea\u2011limpieza. Posteriormente se empuj\u00f3 con la cuenta asyncapi-bot. Microsoft indica con cautela si exactamente ese credential fue robado. La entrada pwn-request y la cadena subsiguiente de pushes del bot est\u00e1n comprobadas y explican la ruta hacia la rama de release.<\/p>\n<p>Alrededor de 07:51-08:30 UTC, el mismo atacante asyncapi\/spec-json-schemas (rama master) recibi\u00f3 commits con prefijo fix:- que dispararon if-nodejs-release.yml y entregaron @asyncapi\/specs@6.11.2-alpha.1 as\u00ed como @asyncapi\/specs@6.11.2. StepSecurity, Socket, SafeDep y OX Security documentaron la misma familia de dropper y la misma infraestructura de segunda fase (seg\u00fan StepSecurity: familia Miasma-v3).<\/p>\n<p>Importante para la clasificaci\u00f3n: no hubo un token de publicaci\u00f3n npm robado. La v\u00eda de publicaci\u00f3n se realiz\u00f3 a trav\u00e9s de OIDC Trusted Publishing. La violaci\u00f3n de confianza ocurre antes, en la CI y en los derechos de push sobre la rama que desencadena el workflow de release.<\/p>\n<div data-element=\"key_number\" style=\"background:#003340;border:1px solid rgba(105,216,237,0.28);border-radius:10px;padding:28px 24px;margin:32px 0;text-align:center;\">\n<div style=\"font-size:2.6em;font-weight:800;color:#69d8ed;line-height:1.05;word-break:keep-all;\">~4 h<\/div>\n<p style=\"margin:10px 0 0;font-size:0.92em;color:#e6e3da;\">Ventana de exposici\u00f3n hasta la publicaci\u00f3n de los paquetes del generador<\/p>\n<p style=\"margin:6px 0 0;font-size:0.78em;color:#8fa3ab;\">Fuente: StepSecurity-Timeline, 14.07.2026 UTC<\/p>\n<\/div>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Por qu\u00e9 la \u00abprovenancia v\u00e1lida\u00bb aqu\u00ed enga\u00f1a<\/h2>\n<p>npm Trusted Publishing con OpenID Connect (OIDC) y atenciones SLSA (Supply Chain Levels for Software Artifacts) responden a una pregunta estrecha: \u00bfSe gener\u00f3 este artefacto con el workflow autorizado de GitHub de este repositorio? La atestaci\u00f3n de los paquetes generadores mostr\u00f3 exactamente repo:asyncapi\/generator:ref:refs\/heads\/next, el archivo de workflow, el SHA del commit y la URL de ejecuci\u00f3n.<\/p>\n<p>Lo que no responden: \u00bfEl commit que desencaden\u00f3 el workflow fue leg\u00edtimo y estaba libre de manipulaciones? La provenancia no protege contra credenciales de push comprometidas ni contra trabajos de CI que ejecutan c\u00f3digo no confiable con tokens privilegiados. Quien combine pull_request_target con el checkout del encabezado del PR, mantenga secrets en esos jobs y mantenga una protecci\u00f3n de ramas d\u00e9bil en las ramas de lanzamiento, abre exactamente esta cadena.<\/p>\n<p>Para los CISOs y el AppSec es el punto clave: las firmas de registro y las marcas de provenancia por s\u00ed solas eval\u00faan el caso AsyncAPI como \u00abverde\u00bb, aunque la CI ya haya distribuido el dropper. Los controles deben verificar la fuente de verdad y los permisos del workflow.<\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Mec\u00e1nica de carga sin gancho de instalaci\u00f3n<\/h2>\n<p>En ninguno de los package.json afectados conten\u00eda un script preinstall\/postinstall. El dropper se ejecut\u00f3 en cuanto el c\u00f3digo de m\u00f3dulo envenenado se carg\u00f3 mediante require(), es decir, durante la generaci\u00f3n normal o en trabajos CI que construyen plantillas AsyncAPI.<\/p>\n<p>Nivel 1 genera un proceso Node independiente. Nivel 2 descarga una sync.js desde una puerta de enlace IPFS, almacenada en rutas espec\u00edficas del sistema operativo que parecen una inofensiva runtime de NodeJS (por ejemplo, ~\/.local\/share\/NodeJS\/sync.js en Linux). Nivel 3 descifra un implante Miasma\u2011v3 empaquetado. En la configuraci\u00f3n entregada, se ejecutan ShellExec remoto, persistencia y beaconing C2 a trav\u00e9s de varios canales (HTTP, Nostr, IPFS, BitTorrent\u2011DHT, Ethereum\u2011Dead\u2011Drop).<\/p>\n<p>Los an\u00e1lisis est\u00e1ticos de Aikido y Socket revelan adem\u00e1s m\u00f3dulos en el paquete que estaban desactivados mediante toggle en esta entrega: recon: false (el robo de credenciales no se inicia), metamorphic: false (mutaci\u00f3n, evasi\u00f3n y poison\u2011tooling de IA excluidos) y propagate para npm\/pypi\/ruby\/cargo siempre false (no hay propagaci\u00f3n lateral de paquetes). La operaci\u00f3n qued\u00f3 en el artefacto. El tiempo de ejecuci\u00f3n de esta ola fue una shell remota con persistencia y C2. La forense del host sigue siendo obligatoria, ya que el acceso a la shell y la persistencia estaban activos.<\/p>\n<div style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0 32px 0;\">\n<table style=\"width:100%;min-width:560px;border-collapse:collapse;font-size:0.95em;\">\n<thead>\n<tr style=\"background:#003340;color:#fff;\">\n<th style=\"padding:12px 16px;text-align:left;border:1px solid #003340;\">Paquete<\/th>\n<th style=\"padding:12px 16px;text-align:left;border:1px solid #003340;\">Versi\u00f3n maliciosa<\/th>\n<th style=\"padding:12px 16px;text-align:left;border:1px solid #003340;\">Versi\u00f3n segura<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\"><strong>@asyncapi\/generator<\/strong><\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\">3.3.1<\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;color:#003340;font-weight:600;\">3.3.0<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\"><strong>@asyncapi\/generator-helpers<\/strong><\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\">1.1.1<\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;color:#003340;font-weight:600;\">1.1.0<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\"><strong>@asyncapi\/generator-components<\/strong><\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\">0.7.1<\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;color:#003340;font-weight:600;\">0.7.0 \/ 1.0.0<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\"><strong>@asyncapi\/specs<\/strong><\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;\">6.11.2 \/ 6.11.2-alpha.1<\/td>\n<td style=\"padding:12px 16px;border:1px solid #ddd;color:#003340;font-weight:600;\">6.11.1<\/td>\n<\/tr>\n<\/tbody>\n<p style=\"font-size:0.8em;color:#888;margin:8px 0 0;\">Fuente: StepSecurity Affected-Packages-Tabelle, Stand 14.07.2026<\/p>\n<\/div>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Qu\u00e9 deben revisar los equipos de seguridad ahora<\/h2>\n<p>Primero la revisi\u00f3n de hechos en su propio inventario: Lockfiles y CI-Caches de la ventana UTC del 14. julio. Quienes solo incluyan @asyncapi\/specs de forma transitiva a trav\u00e9s del parser, a menudo no ver\u00e1n la versi\u00f3n en el \u00e1rbol de dependencias directo. Overrides y escaneos SBOM son obligatorios aqu\u00ed.<\/p>\n<p>En segundo lugar, an\u00e1lisis forense del host: rutas de drop bajo el nombre enga\u00f1oso de \u00abNodeJS\u00bb, procesos Node desconectados, conexiones salientes a gateways IPFS y destinos HTTP-C2 inusuales. En tercer lugar, rotaci\u00f3n de credenciales en los ejecutores y port\u00e1tiles afectados. ShellExec puede acceder a secrets de entorno y tokens locales, incluso si el m\u00f3dulo de recolecci\u00f3n incluido en esta configuraci\u00f3n estaba desactivado. Prioridad: PATs de GitHub, tokens npm y claves de nube de entornos de compilaci\u00f3n.<\/p>\n<div data-element=\"checklist\" style=\"background:#23261f;border:1px solid rgba(105,216,237,0.22);border-radius:10px;padding:22px 24px;margin:32px 0;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 2px 10px rgba(0,0,0,0.22);\">\n<p style=\"margin:0 0 12px;font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;font-size:0.72em;letter-spacing:0.12em;text-transform:uppercase;color:#69d8ed;\">MEDIDAS INMEDIATAS<\/p>\n<ul style=\"margin:0;padding-left:0;list-style:none;\">\n<li style=\"margin:0 0 10px;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>Regenerar los Lockfiles, establecer pins maliciosos en versiones seguras<\/li>\n<li style=\"margin:0 0 10px;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>Revisar Drop-Pfaces y procesos Node desconectados en hosts de desarrollo y CI<\/li>\n<li style=\"margin:0 0 10px;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>Rotar secrets en m\u00e1quinas afectadas<\/li>\n<li style=\"margin:0 0 10px;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>pull_request_target: no hacer checkout de heads no confiables con secrets; tokens least-privilege<\/li>\n<li style=\"margin:0 0 10px;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>Release-Branches: obligatorio revisar, commits firmados, Direct-Push bloqueado<\/li>\n<li style=\"margin:0;padding-left:26px;position:relative;color:#e6e3da;line-height:1.5;\"><span style=\"position:absolute;left:0;color:#69d8ed;\">&#10003;<\/span>CI-Egress: solo destinos de registry esperados, bloquear IPFS\/DHT por defecto<\/li>\n<\/ul>\n<\/div>\n<p>Estructuralmente, un per\u00edodo de enfriamiento para versiones npm reci\u00e9n publicadas y controles de egress en tiempo de ejecuci\u00f3n en GitHub Actions resulta beneficioso. La provenance sigue siendo \u00fatil como un nivel adicional junto al endurecimiento de CI, protecci\u00f3n de ramas, enfriamiento de dependencias y telemetr\u00eda de comportamiento en el build.<\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Enfoque para empresas DACH<\/h2>\n<p>AsyncAPI est\u00e1 integrado en generadores de API, pipelines de documentaci\u00f3n y toolchains de DevOps. Quien adopta una arquitectura orientada a eventos y la automatizaci\u00f3n de OpenAPI\/AsyncAPI suele hacerlo de forma indirecta. NIS2 y el Cyber Resilience Act (ley de resiliencia cibern\u00e9tica) afinan la expectativa de gesti\u00f3n de riesgos en la cadena de suministro. La afirmaci\u00f3n \u00abexaminamos la procedencia\u00bb por s\u00ed sola no basta cuando quedan abiertas las autorizaciones de workflow y la gobernanza de la rama.<\/p>\n<p>Este caso subraya la gobernanza en el source\u2011of\u2011truth: la rama Git y los workflows CI que alimentan la pipeline. Los attestamientos de registro complementan esta capa, pero no la sustituyen como \u00fanico prueba de confianza.<\/p>\n<h2 style=\"padding-top:64px;margin-bottom:20px;\">Preguntas frecuentes<\/h2>\n<p class=\"st-faq-hint\">Cada pregunta est\u00e1 bloqueada. Un toque desbloquea la respuesta.<\/p>\n<details>\n<summary><strong>\u00bfNo sirvi\u00f3 la provenance npm como prueba de confianza?<\/strong><\/summary>\n<p style=\"margin:8px 0 4px 24px;color:#555;line-height:1.6;\">Demuestra el flujo de trabajo autorizado y el contexto de compilaci\u00f3n. No garantiza la legitimidad del commit desencadenante ni la integridad de los credenciales CI previos. En caso de compromiso de la rama, la atestaci\u00f3n puede ser t\u00e9cnicamente correcta pero enga\u00f1osa a la hora de valorar el riesgo.<\/p>\n<\/details>\n<details>\n<summary><strong>\u00bfHabr\u00eda protegido un bloqueador de scripts de instalaci\u00f3n?<\/strong><\/summary>\n<p style=\"margin:8px 0 4px 24px;color:#555;line-height:1.6;\">No. El Dropper depend\u00eda del m\u00f3dulo de carga (require). Los scripts de ciclo de vida de npm quedaron fuera. La protecci\u00f3n requiere controles de comportamiento y egress en el build.<\/p>\n<\/details>\n<details>\n<summary><strong>\u00bfSon las instalaciones nuevas todav\u00eda peligrosas?<\/strong><\/summary>\n<p style=\"margin:8px 0 4px 24px;color:#555;line-height:1.6;\">Las malas versiones fueron eliminadas del registro. Resulta arriesgado conservar los lockfiles y cach\u00e9s del per\u00edodo de exposici\u00f3n, as\u00ed como los hosts que ya han ejecutado el payload.<\/p>\n<\/details>\n<details>\n<summary><strong>\u00bfQu\u00e9 credenciales se rotan primero?<\/strong><\/summary>\n<p style=\"margin:8px 0 4px 24px;color:#555;line-height:1.6;\">En los sistemas Dev\/CI afectados: tokens de GitHub y npm, claves SSH y credenciales de la nube que estaban en el entorno o en los secretos de los runners. La raz\u00f3n es el acceso a la terminal m\u00e1s persistencia. El m\u00f3dulo de recolecci\u00f3n estuvo incluido en esta entrega a causa de esta configuraci\u00f3n.<\/p>\n<\/details>\n<details>\n<summary><strong>\u00bfCu\u00e1l es la medida de gobernanza prioritaria?<\/strong><\/summary>\n<p style=\"margin:8px 0 4px 24px;color:#555;line-height:1.6;\">pull_request_target y los flujos de trabajo privilegiados relacionados auditar (sin checkout no confiable con secretos, tokens de privilegio m\u00ednimo), asegurar ramas de lanzamiento (revisiones, commits firmados, bloquear pushes directos) y limitar el CI-Egress. Provenance complementa esto como prueba del camino de construcci\u00f3n.<\/p>\n<\/details>\n<p><!--ST-LOWER-CARDS lang=es--><\/p>\n<h3 style=\"margin:48px 0 18px;padding-left:12px;font-size:1.05em;font-weight:800;color:#e6e3da;border-left:3px solid #69d8ed;line-height:1.2;\">Selecci\u00f3n de la redacci\u00f3n<\/h3>\n<p><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/07\/15\/cursor-ejecuta-git-exe-raiz-repositorio\/\" style=\"display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 10px;background:#23261f;border:1px solid rgba(105,216,237,0.18);border-radius:12px;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 6px 18px rgba(0,0,0,0.22);text-decoration:none;color:#e6e3da;box-sizing:border-box;width:100%;\"><span style=\"flex:0 0 116px;aspect-ratio:16\/9;overflow:hidden;border-radius:8px;background:#111210;border:1px solid rgba(230,227,218,0.08);display:block;\"><img decoding=\"async\" src=\"https:\/\/www.securitytoday.de\/wp-content\/uploads\/2026\/07\/cursor-windows-git-exe-repo-root-code-execution-cover-hero-250x141.jpg\" alt=\"\" loading=\"lazy\" width=\"116\" height=\"65\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"><\/span><span style=\"display:block;min-width:0;\"><span style=\"display:block;font-size:0.68em;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#69d8ed;margin-bottom:5px;\">Recomendado<\/span><span style=\"display:block;font-size:1.0em;font-weight:650;line-height:1.35;color:#e6e3da;overflow-wrap:anywhere;\">Cursor ejecuta git.exe desde la ra\u00edz del repositorio<\/span><\/span><\/a><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/07\/15\/legacyhive-poc-parches-windows-recientes\/\" style=\"display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 10px;background:#23261f;border:1px solid rgba(105,216,237,0.18);border-radius:12px;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 6px 18px rgba(0,0,0,0.22);text-decoration:none;color:#e6e3da;box-sizing:border-box;width:100%;\"><span style=\"flex:0 0 116px;aspect-ratio:16\/9;overflow:hidden;border-radius:8px;background:#111210;border:1px solid rgba(230,227,218,0.08);display:block;\"><img decoding=\"async\" src=\"https:\/\/www.securitytoday.de\/wp-content\/uploads\/2026\/07\/legacyhive-windows-eop-poc-nach-patch-tuesday-cover-hero-250x141.jpg\" alt=\"\" loading=\"lazy\" width=\"116\" height=\"65\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"><\/span><span style=\"display:block;min-width:0;\"><span style=\"display:block;font-size:0.68em;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#69d8ed;margin-bottom:5px;\">Recomendado<\/span><span style=\"display:block;font-size:1.0em;font-weight:650;line-height:1.35;color:#e6e3da;overflow-wrap:anywhere;\">LegacyHive PoC afecta parches recientes de Windows<\/span><\/span><\/a><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/07\/15\/dos-vulnerabilidades-joomla-lista-kev-cisa\/\" style=\"display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 10px;background:#23261f;border:1px solid rgba(105,216,237,0.18);border-radius:12px;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 6px 18px rgba(0,0,0,0.22);text-decoration:none;color:#e6e3da;box-sizing:border-box;width:100%;\"><span style=\"flex:0 0 116px;aspect-ratio:16\/9;overflow:hidden;border-radius:8px;background:#111210;border:1px solid rgba(230,227,218,0.08);display:block;\"><img decoding=\"async\" src=\"https:\/\/www.securitytoday.de\/wp-content\/uploads\/2026\/07\/joomla-icagenda-balbooa-kev-upload-rce-cover-hero-250x141.jpg\" alt=\"\" loading=\"lazy\" width=\"116\" height=\"65\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"><\/span><span style=\"display:block;min-width:0;\"><span style=\"display:block;font-size:0.68em;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#69d8ed;margin-bottom:5px;\">Recomendado<\/span><span style=\"display:block;font-size:1.0em;font-weight:650;line-height:1.35;color:#e6e3da;overflow-wrap:anywhere;\">Dos vulnerabilidades de Joomla en la lista KEV de CISA<\/span><\/span><\/a><\/p>\n<h3 style=\"margin:48px 0 18px;padding-left:12px;font-size:1.05em;font-weight:800;color:#e6e3da;border-left:3px solid #69d8ed;line-height:1.2;\">M\u00e1s de la red MBF Media<\/h3>\n<p><a href=\"https:\/\/www.cloudmagazin.com\/es\/2026\/07\/16\/cuando-los-agentes-de-inteligencia-artificial-viajan-la-residencia-de-datos\/\" style=\"display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 10px;background:#23261f;border:1px solid rgba(105,216,237,0.18);border-radius:12px;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 6px 18px rgba(0,0,0,0.22);text-decoration:none;color:#e6e3da;box-sizing:border-box;width:100%;\"><span style=\"flex:0 0 116px;aspect-ratio:16\/9;overflow:hidden;border-radius:8px;background:#111210;border:1px solid rgba(230,227,218,0.08);display:block;\"><img decoding=\"async\" src=\"https:\/\/www.securitytoday.de\/wp-content\/uploads\/2026\/07\/net-wenn-ki-agenten-reisen-data-residency-al-67057393.jpg\" alt=\"\" loading=\"lazy\" width=\"116\" height=\"65\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"><\/span><span style=\"display:block;min-width:0;\"><span style=\"display:block;font-size:0.68em;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#0bb7fd;margin-bottom:5px;\">cloudmagazin<\/span><span style=\"display:block;font-size:1.0em;font-weight:650;line-height:1.35;color:#e6e3da;overflow-wrap:anywhere;\">Cuando los agentes de inteligencia artificial viajan: la residencia de datos como desaf\u00edo operativo<\/span><\/span><\/a><a href=\"https:\/\/mybusinessfuture.com\/es\/mas-quiebras-casos-mas-pequenos-que-se-considera\/\" style=\"display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 10px;background:#23261f;border:1px solid rgba(105,216,237,0.18);border-radius:12px;box-shadow:inset 0 1px 0 rgba(230,227,218,0.06),0 6px 18px rgba(0,0,0,0.22);text-decoration:none;color:#e6e3da;box-sizing:border-box;width:100%;\"><span style=\"flex:0 0 116px;aspect-ratio:16\/9;overflow:hidden;border-radius:8px;background:#111210;border:1px solid rgba(230,227,218,0.08);display:block;\"><img decoding=\"async\" src=\"https:\/\/www.securitytoday.de\/wp-content\/uploads\/2026\/07\/net-mehr-insolvenzen-kleinere-faelle-was-zae-22120048-250x143.jpg\" alt=\"\" loading=\"lazy\" width=\"116\" height=\"65\" style=\"width:100%;height:100%;object-fit:cover;display:block;\"><\/span><span style=\"display:block;min-width:0;\"><span style=\"display:block;font-size:0.68em;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#aa8ac2;margin-bottom:5px;\">MyBusinessFuture<\/span><span style=\"display:block;font-size:1.0em;font-weight:650;line-height:1.35;color:#e6e3da;overflow-wrap:anywhere;\">M\u00e1s quiebras, casos m\u00e1s peque\u00f1os: \u00bfqu\u00e9 se considera?<\/span><\/span><\/a><!--\/ST-LOWER-CARDS--><\/p>\n","protected":false},"excerpt":{"rendered":"Cuatro paquetes AsyncAPI de npm con origen OIDC v\u00e1lido entregaron un cargador de botnet. El punto de entrada fue un flujo de trabajo de CI mal configurado.","protected":false},"author":10,"featured_media":22221,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"AsyncAPI npm","_yoast_wpseo_title":"CI\/CD public\u00f3 el cargador de botnet AsyncAPI","_yoast_wpseo_metadesc":"Cuatro paquetes AsyncAPI de npm con origen v\u00e1lido entregaron un cargador de botnet. El punto de entrada fue el CI.","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_meta-robots-adv":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":0,"_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":0,"evm_kih_original":false,"_evm_slot_owner":"","evm_cvss":0,"evm_risk":0,"evm_casefile":"","evm_primary_cve":"","evm_pin_until":0,"evm_external_preview_token":"","evm_external_preview_expires":"","_evm_translation_lang":"es","featured_post":0,"featured_post_sortierung":0,"_wp_old_slug":[],"footnotes":""},"categories":[257],"tags":[],"class_list":["post-22333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-praxis-umsetzung-es"],"evm_reading_time_minutes":9,"wpml_language":"es","wpml_translation_of":22219,"_links":{"self":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/22333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/comments?post=22333"}],"version-history":[{"count":1,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/22333\/revisions"}],"predecessor-version":[{"id":22334,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/22333\/revisions\/22334"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/media\/22221"}],"wp:attachment":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/media?parent=22333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/categories?post=22333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/tags?post=22333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}