Aller au contenu
Français
medium

Atomic Arch: 400 AUR packages hijacked, and the registry reflex I keep

Lire cet article en français

8 min read
AUR hijacked

On 11 June 2026, researchers and the Arch Linux community disclosed a large-scale software supply chain attack against the Arch User Repository (AUR), dubbed Atomic Arch by Sonatype. First wave: 408 packages hijacked. The next day, a second wave brought the total to more than 1,500 compromised packages. The modus operandi is embarrassingly simple: adopt orphaned packages, boobytrap their build script, and run malicious code at install time.

I run Arch on several machines, and like many people I type yay -S without thinking much about what I just authorized. This campaign forced me to treat the AUR for what it is: a dependency registry, with exactly the same risks as npm or PyPI. Here is what happened, how to know whether you are affected, and above all what I take away on the defensive side, anchored in the SOCLE framework.

What you will learn

  • Understand why the AUR is an attack surface like any other registry
  • Reconstruct the Atomic Arch mechanism, from package adoption to payload
  • Check whether your Arch, Manjaro or EndeavourOS machines are affected
  • React: identify, rotate secrets, rebuild if needed
  • Anchor the lesson in concrete requirements rather than good intentions

Why is the AUR a dependency we forget to treat as one?

The AUR is not an official Arch Linux repository. It is a community space where anyone publishes build recipes, the PKGBUILD files, that helpers such as yay or paru download and execute on your machine. Arch's official repositories were not touched by this campaign, and that is an important point: the problem is not Arch, it is the implicit trust we grant to community content.

One AUR peculiarity made everything possible: when a maintainer abandons a package, another user can adopt it and inherit its name and accumulated reputation. A package that is orphaned but still installed by thousands of people therefore becomes a coveted asset.

How did the attack work? Adopt the orphan, boobytrap the PKGBUILD

The attack follows three methodical steps:

  1. Adoption of orphaned packages: the attackers take over, through the AUR's normal mechanism, abandoned packages with a real user base.
  2. Injection into the PKGBUILD: they modify the build script to add malicious dependencies, disguised as harmless npm packages (atomic-lockfile, js-digest).
  3. Execution at install time: on the next yay/paru run, the boobytrapped PKGBUILD downloads and launches the payload, with the privileges of the installing user.

There is no zero-day, no bypassed signature: just the arbitrary code execution that every PKGBUILD allows by design, triggered by a package whose name inspired trust. It is inverted typosquatting: not a fake name, but a real name hijacked.

What does the payload do? A Rust stealer and an eBPF rootkit

The payload is a credential stealer written in Rust. On a standard system, it harvests: browser cookies and session tokens, SSH keys, GitHub and npm tokens, cloud credentials and Docker access keys. Enough to pivot far beyond the compromised machine, into your repositories and your infrastructures.

The immediate blast radius is limited to Arch Linux, Manjaro, EndeavourOS systems and Arch under WSL2 installations that consume the AUR. But the exfiltrated secrets know no borders.

Are you affected?

Ask yourself three questions:

  • Do you use Arch, Manjaro or EndeavourOS (including under WSL2)?
  • Have you installed or updated AUR packages since early June 2026?
  • Were those packages recently adopted by a new maintainer?

If yes to the first two, consider yourself potentially exposed until proven otherwise. The community has published detection tools (see the sources) to spot boobytrapped PKGBUILDs and known indicators.

What should you do right now?

Removing the package is not enough: if the stealer ran, the credentials are already gone. The priority is rotation.

What does SOCLE take away from it?

This is where I tie the incident to enforceable requirements rather than wishful thinking. In SOCLE, Atomic Arch belongs to the Registres & publication stage, through two vectors: publisher account takeover (V-REG-1) and publishing with valid credentials (V-REG-4). The SOCLE incident sheet covers the details.

Four requirements would have made it much harder:

  • SOCLE-REL-PUB-1: publishing account protected by phishing-resistant MFA (WebAuthn/FIDO2). A maintainer protected this way does not lose their account so easily.
  • SOCLE-REL-GEN-6: publishing through trusted publishing (short-lived OIDC identity) rather than long-lived tokens, which leak and get replayed.
  • SOCLE-INT-GEN-7: dependencies pinned by digest, never by mutable name, so a hijacked package cannot silently substitute itself for the expected one.
  • SOCLE-DPL-GEN-4: provenance verification at admission, against an expected source and builder.

None of these requirements is exotic. All of them already exist elsewhere; SOCLE gathers them and makes them verifiable. That is the difference between "we should secure our dependencies" and a control you can audit.

Why does this keep happening?

Atomic Arch invents nothing. It is the same pattern as the npm, PyPI or GitHub Actions compromises of recent months: a maintainer account or a trusted name is taken over, then serves as a large-scale distribution channel. The target changes (the AUR this time), the mechanism stays: inherited trust + automatic execution at install time + mass republishing.

As long as defence rests on "I trust the package name", the attack wins. The reflex to build is to treat every registry as a hostile surface: strong publishing identities, digest pinning, quarantine before adoption, and detection of abnormal republishing.

Key takeaways

  • The AUR is a dependency registry: same risks as npm or PyPI, to be treated the same way.
  • Atomic Arch hijacked 400+ then 1,500+ packages through the adoption of orphaned packages and boobytrapped PKGBUILDs.
  • The Rust payload steals secrets; as root, an eBPF rootkit makes the machine unrecoverable except through rebuilding.
  • Arch's official repositories are not affected: the risk is the trust placed in community content.
  • Afterwards, secret rotation first, package removal second.
  • The SOCLE requirements REL-PUB-1, REL-GEN-6, INT-GEN-7 and DPL-GEN-4 target exactly this vector.
  • The pattern (hijacked account, automatic execution, mass republishing) repeats: the countermeasure is structural, not one-off.

Next steps

Sources