Paquetes de AUR fueron comprometidos con un infostealer y un rootkit
(discourse.ifin.network)- El repositorio de paquetes AUR tiene una estructura en la que cualquiera puede adoptar paquetes no mantenidos y enviar cambios a PKGBUILD y archivos relacionados; en este incidente hay indicios de que más de 408 paquetes fueron comprometidos
- Un nuevo maintainer de paquetes en AUR se hizo pasar por un maintainer de confianza, adoptó paquetes y otros maintainers de AUR avanzan con la eliminación de los paquetes comprometidos
- Los paquetes comprometidos inicialmente fueron modificados para ejecutar
npmmediante un script de preinstalación e instalar la carga maliciosaatomic-lockfile - Más tarde, la infección instaló el malicioso
js-digestcon Bun, y NPM eliminó ese paquete - La mayoría de los paquetes se usan rara vez, pero lo importante es la amplitud del alcance y que se trata de un ataque a la cadena de suministro que, además del robo de información, incluso incluía un rootkit eBPF
Estado del incidente
-
Qué ocurrió
- Hay indicios de que un nuevo maintainer de paquetes en AUR se hizo pasar por un maintainer de confianza, adoptó más de 408 paquetes y los comprometió
- Tras reportarse la intrusión, otros maintainers de AUR comenzaron a retirar los paquetes comprometidos
- Al momento de 2026-06-12T17:30:00Z, los maintainers de AUR informaron que habían eliminado todos los commits maliciosos
- Los maintainers de AUR decidieron aplicar controles y restricciones a algunas funciones, incluida la adopción de paquetes
- Arch Linux publicó el aviso Active AUR malicious packages incident
-
Dependencias maliciosas
- El ataque incluyó al menos dos dependencias maliciosas distintas
- Los paquetes afectados al inicio fueron modificados para usar
npmen un script de preinstalación e instalar el paquete de carga maliciosaatomic-lockfile - El paquete
premake-gittiene un commit de ejemplo de ese cambio - Más adelante, la infección usó Bun para instalar el malicioso
js-digest, y NPM eliminójs-digest - El análisis del ataque tiene un desglose detallado en Preliminary analysis of AUR malware
Respuesta e indicadores de compromiso
-
Medidas recomendadas
- Si no usas Arch, no eres un objetivo directamente afectado por esta intrusión en paquetes de AUR
- Los usuarios de Arch deben revisar la lista de paquetes afectados e inspeccionar sus sistemas con el script para verificar exposición
- El
aur_check.shenlazado en la fuente original es una versión antigua, y para la verificación más reciente se debe seguir la guía de ese Gist - Si se encuentran indicadores de compromiso, el sistema debe preservarse para una investigación forense adecuada
- Si se detectan paquetes infectados, se deben seguir los procedimientos habituales de respuesta a incidentes, cambiar todas las credenciales y considerar reinstalar Arch
- Debido a la posible presencia de un rootkit, ya no se puede garantizar la confiabilidad del sistema
- Todos los usuarios deben tomar medidas para bloquear el tráfico saliente de Tor en la red
-
Indicadores de compromiso
- El SHA256 del ejecutable malicioso para Linux incrustado en
js-digestes7883bda1ff15425f2dbe622c45a3ae105ddfa6175009bbf0b0cad9bf5c79b316 - Se pueden detectar mapas eBPF sospechosos con
bpftool map list - Entre los nombres de mapas sospechosos están
hidden_pids,hidden_names,hidden_inodes
- El SHA256 del ejecutable malicioso para Linux incrustado en
-
Verificaciones adicionales
- No fue una cuenta existente de maintainer la que realizó los commits maliciosos, sino que se suplantó a una cuenta de maintainer conocida
- La mayoría de los paquetes se usan rara vez, pero el alcance de la infección, con más de 408 paquetes, es grande
- Un ataque a la cadena de suministro que, además del robo de información, incluya incluso un rootkit eBPF es un caso poco común
- La página de Socket.dev de
atomic-lockfilemuestra 134 descargas del paquete malicioso de NPM - El paquete de NPM es mantenido por el usuario
herbsobering - Al buscar el nombre de usuario
herbsoberingen GitHub aparece una única imagen de contenedor que parece ser una herramienta de reverse shell/proxy,herbsobering430 - En el repositorio de paquetes AUR, si un paquete aparece como no mantenido, cualquiera puede adoptarlo y enviar cambios al PKGBUILD y a los archivos relacionados
- Buscar y adoptar automáticamente paquetes abandonados no es algo inusual, y el contexto relacionado está en este hilo de Mastodon
1 comentarios
Comentarios de Hacker News
Hay que aceptar que AUR no es más que una colección de PKGBUILD hechos por usuarios
Siempre hay que revisar el código fuente de cualquier PKGBUILD que instales desde AUR, y las actualizaciones no son una excepción. Este ha sido el supuesto básico durante más de 10 años, y por eso no existe un helper oficial de AUR como yay
Mucha gente se queja de que Arch Linux es elitista, pero en la práctica es una distribución para personas que saben lo que hacen y no quieren que las lleven de la mano en cada paso. Eso también significa que si instalas paquetes aleatorios de AUR y terminas rompiendo tu sistema o siendo comprometido, es tu responsabilidad
Dicho eso, puede que la época de permitir que cualquiera adopte paquetes de AUR esté llegando a su fin. Tan solo el costo de revertir los paquetes afectados cada vez es demasiado alto. Como alternativa, revisar todas las solicitudes de adopción sería demasiado pesado y no hay garantía de que ayude en todos los casos
Yo diría que sí, salvo que se ejecuten en un lugar sin acceso a internet o que solo acceda a cosas públicas que no importe exponer
Puede que AUR no, pero otros ecosistemas al menos podrían mejorar en teoría con modelos de permisos o sandboxing. Las extensiones del navegador ya tienen esa opción, pero casi ningún usuario “normal” la usa
Por desgracia, el 99.99% de la gente no puede revisar todo ni tiene tiempo para hacerlo. Lo más seguro parece ser paquetes de distribuciones con maintainers de confianza, o algo como la App Store de iOS, con permisos y cierto nivel de revisión
Este caso es algo raro porque en el PKGBUILD hacen un
npm installde una forma muy poco elaborada. Ahora casi todos los repositorios de paquetes fuera de AUR tienen el mismo problema, y auditar manualmente toda la cadena de dependencias no es realistaClaro, yo tampoco tengo una solución
La gente desactiva SELinux,
--privilegeddesactiva seccomp y AppArmor, y además existen CVE de escape de sandboxAl final me gustaría que fuera algo como
username/packagename-bin|git. Así quedaría mucho más claro qué está instalando la gente realmente y de quién lo está obteniendoEsta campaña sigue en curso. Justo ahora recibí un correo avisando que uno de mis paquetes viejos fue adoptado; llevaba años sin funcionar y había sido un paquete huérfano por bastante tiempo. Justo después de la adopción apareció un commit malicioso
Ahora parece que están usando bun en lugar de npm, así que es posible que los atajos basados en npm ya no sirvan
https://aur.archlinux.org/cgit/aur.git/commit/?h=toggldeskto...
Sería incómodo, pero quizá sería mejor que AUR obligara a hacer un nuevo envío en vez de permitir adoptar un paquete abandonado por otra persona, y que además eliminara periódicamente los paquetes huérfanos después de cierto tiempo
Es obvio que hay que tener cuidado al instalar cosas desde AUR, y antes siempre hubo paquetes sospechosos —mal construidos o mal empaquetados—, pero ver una inserción maliciosa activa sí preocupa
Creo que AUR tiene dos grandes problemas. Primero, que es un vestigio de una época un poco más igualitaria del software libre, cuando en general se podía confiar en código de terceros. Segundo, que cualquiera puede adoptar paquetes huérfanos conservando intacto el historial y los antecedentes de verificación existentes
La primera época ya quedó atrás, y la segunda se puede mitigar con controles más estrictos sobre las cuentas de AUR o con protecciones adicionales del lado de los helpers de AUR. Por ejemplo, si un paquete cambió de dueño recientemente, mostrar una advertencia enorme y aterradora. Igual habrá gente que simplemente presione
yy siga adelante, pero sigue siendo mejor que nadaO también se puede evitar por completo el uso de helpers de AUR y revisar y compilar directamente el paquete necesario desde el PKGBUILD
Te preguntan activamente si quieres revisarlo y, después de aceptar el riesgo final, también te avisan si hubo cambios
De todos modos, la postura de que “AUR es dañino” no es nueva. Quien usa AUR debería entender los riesgos de ese entorno y, en la práctica, apenas está un paso por encima de hacer
curl | bashcon algo sacado de StackOverflowHan pasado más de 7 horas desde que ocurrió esto y todavía no hay ninguna mención en archlinux.org ni en aur.archlinux.org. No entiendo por qué. Debieron haber bloqueado el AUR hasta tomar medidas que demostraran que los usuarios estaban enterados de esto
Por ejemplo, podrían cambiar ligeramente la URL de la API del AUR para hacer que los usuarios de yay/yaourt investiguen qué pasó. La nueva API debería tener infraestructura para avisarle al usuario y verificar que leyó el mensaje antes de continuar. Esto es aún más necesario cuando ni siquiera está claro si ya encontraron todo el malware
También debería existir una base de datos de commits del AUR revocados o comprometidos, y un mecanismo para advertir a los usuarios si alguna vez instalaron esos paquetes
Está incluso en el nombre mismo, y en la documentación de la wiki se indica claramente que el AUR es un repositorio de usuarios y que no debe confiarse en él ciegamente
Está escrito tal cual en la gran caja roja de arriba: https://wiki.archlinux.org/title/Arch_User_Repository
Hay muchas cosas en el AUR que yo jamás instalaría, y no creo que lo mejor sea difundir todas por la lista de correo
No me desagrada la idea de advertir a los usuarios que instalaron paquetes maliciosos, pero parece poco viable de implementar. El AUR no tiene el seguimiento de instalaciones que sí existe en herramientas comerciales. ¿Cómo sabrías quién instaló qué paquete? El AUR es básicamente más parecido a una guía telefónica de ubicaciones de paquetes, y ni siquiera requiere información de inicio de sesión o autenticación
Así que las advertencias tendrían que venir de herramientas que el usuario pueda ejecutar si presta atención, y que de hecho le exijan prestar atención. Ej.: https://gist.github.com/Kidev/59bf9f5fb53ab5eee99f19a6a2fc39...
¿Y cómo se supone exactamente que funcionaría eso de que la nueva API avise al usuario y le haga confirmar que lo leyó? Los paquetes del AUR son solo repositorios git, y los mantenedores de Arch no pueden controlar lo que los ayudantes de AUR hagan o dejen de hacer
Si no quieren enumerar todos los paquetes conocidos afectados, al menos deberían recomendar como postura oficial que quien use paquetes del AUR lea todos los archivos de todos los paquetes que utiliza
También tiene sentido. Conozco algunos de los paquetes en la lista de afectados, y están muy desactualizados; además, los proyectos upstream ya no tienen mantenimiento
No sé cuántas víctimas habrá en total, pero es muy probable que el equipo del AUR tenga cifras exactas. Supongo que lo están manejando lo mejor que pueden de acuerdo con la magnitud del impacto
Al final, este tipo de cosa se volvió inevitable y, si no cambia nada, probablemente ocurra con más frecuencia. Me gusta mucho el sistema PKGBUILD del AUR, y lo uso seguido incluso al escribir los míos
El problema más serio y a la vez más fácil de corregir es que cualquiera puede adoptar un paquete huérfano, y al usuario final no se le informa eso en absoluto
Lograr que se elimine un paquete da poco beneficio en comparación con el esfuerzo que requiere, así que la forma óptima de soltar el control termina siendo convertirlo en paquete huérfano. Creo que debería ser al revés. Como mínimo, el usuario debería saber claramente que el paquete quedó huérfano
Puede que esta carga recaiga más en ayudantes de AUR como paru o yay, y recomendaría que hagan ese cambio
Hay un script sencillo para escanear paquetes comprometidos
https://cscs.pastes.sh/aurvulntest20260611.sh
No es mi script, y es fácil de leer y entender. Nunca deberían hacer pipe directo de un script a bash
comm -1 -2 <(pacman -Qq | sort) <(curl -s https://gist.githubusercontent.com/quantenProjects/… | sort)Nunca es mal momento para aprender
comm(1)Supongo que si, como yo, no ejecutaste
yay -Syuen un buen rato, durante meses, entonces estarás bien, ¿no? …¿verdad?Carajo, no me hagan reinstalar Arch. La última vez me llevó una semana
Actualización: archinstall está bueno. Me recuperé de nuevo en unos 15 minutos
Siempre hay que revisar el PKGBUILD y las fuentes. En general, el AUR no es algo en lo que confiar. Más bien sorprende que una intrusión así no haya pasado antes
9 Junsolo funciona en locales en inglés o con formato similarDespués de adaptarlo a mi entorno, me apareció
jd-gui, pero en realidad había instaladojd-gui-binunas dos horas antes de la intrusión. Creo que tuve suerte porque esa noche me dio flojera esperar a compilar desde las fuentes y elegí el paquete-binLa comunidad de Arch está publicando scripts y herramientas rápidamente.
Por ahora, la utilidad unificada más actual para comprobar si hay infección es esta:
https://github.com/lenucksi/aur-malware-check
Además, en la lista de correo aur-request están apareciendo muchas solicitudes de eliminación y de dejar paquetes huérfanos para revertir commits maliciosos:
https://lists.archlinux.org/archives/list/aur-requests@lists...
Hay muchas partes de ese script que son difíciles de entender, así que no es fácil juzgar solo leyendo el código si es seguro
Uno termina esperando alguna reacción o solución del lado de los desarrolladores oficiales de Arch
Transmite bien la urgencia y la importancia de estar involucrado en un ataque de malware de esta magnitud
Recuerdo haber instalado hace como 10 años el emulador Mednafen en Arch Linux. El programa no arrancaba porque estaba enlazado contra una biblioteca que no existía en mi sistema.
Resultó que el mantenedor había compilado el software en su propio sistema, y se usó una biblioteca que estaba ahí pero no figuraba en las dependencias.
Era un paquete oficial mantenido, y yo siempre había pensado que estas cosas se construían en servidores dedicados de build, no por voluntarios al azar o en computadoras de casa. No sé si Arch todavía compila de la misma manera, pero eso me asustó lo suficiente como para cambiar de distribución
pkgctl build. Es un caso dondemakedepends=trajo de forma transitiva bibliotecas compartidas al entorno de compilación, pero faltan endepends=.Hay una advertencia cuando se detectan dependencias
.so, pero depende del mantenedor verla y tomar medidas.En términos de integridad y seguridad, Arch Linux ha sido uno de los pilares que impulsan el proyecto de compilaciones reproducibles, y una parte considerable del sistema operativo puede verificarse de forma independiente para confirmar que esos binarios realmente se compilaron a partir del código fuente. El esquema de auditoría para paquetes oficiales es más fuerte que el de NixOS y está más o menos al nivel de Debian:
https://reproducible.archlinux.org/
Pero todo esto es totalmente aparte del incidente actual de AUR
pkgctl.Si eres mantenedor, deberías usarlas sí o sí antes de publicar
¿Cuál sería la solución a este problema? ¿Instalar este tipo de paquetes dentro de un contenedor Docker sin acceso a red? No creo que haya que asumir que esto se limita solo a AUR.
En 2026 habrá que desconfiar de todas las fuentes de software. Más aún con la expansión del vibe coding, y el software cerrado es una caja negra, así que es un caos todavía mayor que el open source
Si alguien se cambia en serio, ¿sabe cuánto empeora la duración de batería?
Siguen saliendo más noticias relacionadas.
https://www.phoronix.com/news/Arch-Linux-AUR-400-Compromised
He pensado en la idea de crear un binario canario que, cuando se ejecute, simplemente envíe un correo o muestre una notificación, y llamarlo
npm.A estas alturas, no cambiarle el nombre al binario de npm es un riesgo enorme