{"id":11505,"date":"2026-05-25T11:46:41","date_gmt":"2026-05-25T17:46:41","guid":{"rendered":"https:\/\/beaconlab.us\/?post_type=publicacion&#038;p=11505"},"modified":"2026-05-25T11:47:42","modified_gmt":"2026-05-25T17:47:42","slug":"alerta-2026-55-ataque-a-la-cadena-de-suministro-afecta-paquetes-composer-de-laravel-lang","status":"publish","type":"publicacion","link":"https:\/\/beaconlab.us\/es\/publicacion\/alerta-2026-55-ataque-a-la-cadena-de-suministro-afecta-paquetes-composer-de-laravel-lang\/","title":{"rendered":"Alerta 2026-55 Ataque a la cadena de suministro afecta paquetes Composer de Laravel Lang"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Producto(s) afectado(s):&nbsp;<\/h2>\n\n\n\n<p>Paquetes comprometidos de Laravel Lang publicados en Composer\/Packagist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>laravel-lang\/lang<\/li>\n\n\n\n<li>laravel-lang\/http-statuses<\/li>\n\n\n\n<li>laravel-lang\/attributes<\/li>\n<\/ul>\n\n\n\n<p>Versiones afectadas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u00faltiples versiones hist\u00f3ricas fueron modificadas maliciosamente.<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/socket.dev\/supply-chain-attacks\/laravel-lang-compromise\">https:\/\/socket.dev\/supply-chain-attacks\/laravel-lang-compromise<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Descripci\u00f3n<\/h2>\n\n\n\n<p>Se identific\u00f3 una campa\u00f1a de ataque a la cadena de suministro dirigida al ecosistema PHP\/Laravel mediante el compromiso de paquetes de localizaci\u00f3n de Laravel Lang, una popular colecci\u00f3n de paquetes de c\u00f3digo abierto que proporciona traducciones preconfiguradas para funcionalidades nativas de Laravel, como validaci\u00f3n, paginaci\u00f3n, autenticaci\u00f3n y recuperaci\u00f3n de contrase\u00f1as, permitiendo adaptar aplicaciones a m\u00faltiples idiomas distintos del ingl\u00e9s, incluyendo espa\u00f1ol.<\/p>\n\n\n\n<p>Debido a que Laravel utiliza el idioma ingl\u00e9s de forma predeterminada, estos paquetes son ampliamente utilizados por desarrolladores y organizaciones para localizar aplicaciones en distintos entornos y regiones. Como consecuencia, el compromiso de estos componentes representa un riesgo significativo dentro de proyectos empresariales y entornos de desarrollo basados en PHP.<\/p>\n\n\n\n<p>El ataque no modific\u00f3 directamente el c\u00f3digo principal de los repositorios oficiales; en su lugar, los atacantes abusaron del sistema de etiquetas (tags) de GitHub, redirigiendo versiones leg\u00edtimas hacia commits maliciosos controlados externamente. Esta t\u00e9cnica permiti\u00f3 que versiones aparentemente v\u00e1lidas y confiables descargaran c\u00f3digo malicioso sin generar alertas inmediatas.<\/p>\n\n\n\n<p>El ataque se basa en una t\u00e9cnica avanzada de compromiso de la cadena de suministro (\u201cSupply Chain Attack\u201d), en la que los atacantes manipularon paquetes leg\u00edtimos utilizados por miles de desarrolladores dentro del ecosistema Laravel y Composer. A diferencia de ataques tradicionales, los actores maliciosos no publicaron nuevas versiones sospechosas, sino que reutilizaron versiones hist\u00f3ricas aparentemente leg\u00edtimas mediante la modificaci\u00f3n de etiquetas (tags) en GitHub, apunt\u00e1ndolas hacia commits maliciosos alojados en bifurcaciones controladas por el atacante.<\/p>\n\n\n\n<p>Cuando los desarrolladores o pipelines automatizados ejecutaban comandos como composer install o composer update, Composer descargaba autom\u00e1ticamente estas versiones comprometidas creyendo que eran oficiales y confiables. Esto permiti\u00f3 que el c\u00f3digo malicioso ingresara silenciosamente en servidores de desarrollo, entornos productivos, runners CI\/CD y estaciones de trabajo de desarrolladores.<\/p>\n\n\n\n<p>El principal componente malicioso agregado fue el archivo src\/helpers.php, el cual fue registrado dentro de la secci\u00f3n autoload.files del archivo composer.json. Esta t\u00e9cnica es especialmente peligrosa porque los archivos definidos en autoload.files son ejecutados autom\u00e1ticamente cada vez que una aplicaci\u00f3n PHP carga vendor\/autoload.php, algo com\u00fan en pr\u00e1cticamente todas las aplicaciones Laravel y Symfony.<\/p>\n\n\n\n<p>Una vez ejecutado, el malware constru\u00eda din\u00e1micamente la direcci\u00f3n del servidor de comando y control (C2) flipboxstudio[.]info utilizando t\u00e9cnicas de ofuscaci\u00f3n para evitar ser detectado por herramientas de seguridad o an\u00e1lisis est\u00e1tico. Posteriormente, descargaba una segunda carga \u00fatil desde internet y la almacenaba temporalmente en directorios ocultos del sistema, como \/tmp\/.laravel_locale\/ en Linux\/macOS o carpetas temporales en Windows.<\/p>\n\n\n\n<p>El malware tambi\u00e9n implementaba mecanismos de persistencia y evasi\u00f3n. Por ejemplo, creaba identificadores \u00fanicos por sistema infectado para evitar ejecuciones repetidas, ejecutaba procesos en segundo plano desvinculados del proceso principal y eliminaba autom\u00e1ticamente archivos temporales utilizados durante la infecci\u00f3n para dificultar el an\u00e1lisis forense posterior.<\/p>\n\n\n\n<p>En sistemas Windows, adem\u00e1s del payload PHP, se desplegaba un ejecutable adicional denominado \u201cDebugElevator\u201d, dise\u00f1ado espec\u00edficamente para descifrar credenciales protegidas mediante DPAPI en navegadores basados en Chromium como Chrome, Edge y Brave.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Indicadores de<strong> <\/strong>Compromiso (IoC)<strong><\/strong><\/h2>\n\n\n\n<p><strong>Indicadores de red<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>flipboxstudio.info<\/li>\n\n\n\n<li>https:\/\/flipboxstudio.info\/payload<\/li>\n\n\n\n<li>https:\/\/flipboxstudio.info\/exfil<\/li>\n<\/ul>\n\n\n\n<p><strong>Indicadores de archivos<\/strong><\/p>\n\n\n\n<p>Linux\/macOS:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\/tmp\/.laravel_locale\/&lt;12_hex>.php<\/li>\n\n\n\n<li>\/tmp\/.&lt;8_hex><\/li>\n<\/ul>\n\n\n\n<p>Windows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>%TEMP%\\*.exe<\/li>\n\n\n\n<li>%TEMP%\\*.vbs<\/li>\n<\/ul>\n\n\n\n<p><strong>Indicadores de procesos<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Procesos php hu\u00e9rfanos con ppid=1<\/li>\n\n\n\n<li>Procesos ELF ejecut\u00e1ndose desde rutas eliminadas en \/tmp<\/li>\n<\/ul>\n\n\n\n<p><strong>Indicadores Git<\/strong><\/p>\n\n\n\n<p>Autor malicioso:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your Name<\/li>\n\n\n\n<li>you@example.com<\/li>\n<\/ul>\n\n\n\n<p>Archivos modificados:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>composer.json<\/li>\n\n\n\n<li>src\/helpers.php<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Soluci\u00f3n:<\/h2>\n\n\n\n<p>Se recomiendan la siguientes acciones de forma inmediata:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Identificar y eliminar versiones comprometidas de los paquetes Laravel Lang<\/li>\n\n\n\n<li>Rotaci\u00f3n de credenciales<\/li>\n\n\n\n<li>Revisi\u00f3n de infraestructura<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Informaci\u00f3n adicional:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.stepsecurity.io\/blog\/laravel-lang-supply-chain-attack\">https:\/\/www.stepsecurity.io\/blog\/laravel-lang-supply-chain-attack<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/socket.dev\/blog\/laravel-lang-compromise\">https:\/\/socket.dev\/blog\/laravel-lang-compromise<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/socket.dev\/supply-chain-attacks\/laravel-lang-compromise\">https:\/\/socket.dev\/supply-chain-attacks\/laravel-lang-compromise<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.aikido.dev\/blog\/supply-chain-attack-targets-laravel-lang-packages-with-credential-stealer\">https:\/\/www.aikido.dev\/blog\/supply-chain-attack-targets-laravel-lang-packages-with-credential-stealer<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/laravel-lang-packages-hijacked-to-deploy-credential-stealing-malware\/\">https:\/\/www.bleepingcomputer.com\/news\/security\/laravel-lang-packages-hijacked-to-deploy-credential-stealing-malware\/<\/a><\/li>\n<\/ul>\n","protected":false},"featured_media":11506,"template":"","class_list":["post-11505","publicacion","type-publicacion","status-publish","has-post-thumbnail","hentry"],"acf":{"activar_pdf_link":false,"pdf":null,"numero_de_boletin":"","traffic_light_protocol":"Amber"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion"}],"about":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/types\/publicacion"}],"version-history":[{"count":1,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11505\/revisions"}],"predecessor-version":[{"id":11508,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/publicacion\/11505\/revisions\/11508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/media\/11506"}],"wp:attachment":[{"href":"https:\/\/beaconlab.us\/es\/wp-json\/wp\/v2\/media?parent=11505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}