Skip to navigation

Threat reportSupply ChainTL-2026-1498

Atomic Arch: Supply Chain Attack on 1,619 Arch Linux AUR Packages Deploys Rust Infostealer and eBPF Rootkit

highTRACKING

Beginning June 11, 2026, threat actors adopted abandoned Arch User Repository (AUR) packages and modified their PKGBUILD/.install hooks to pull in trojanized npm/Bun packages (atomic-lockfile, js-digest, lockfile-js), which dropped a Rust-based ELF infostealer (deps) that harvests browser, SSH, cloud, CI/CD, and messaging credentials, and — on root installs — loads an eBPF rootkit for kernel-level process, file, and socket hiding.

Key facts for Atomic Arch 1,619-package AUR hijack

IdentifiersTL-2026-1498
Also known asAtomic Arch
SeverityHIGH
CVSS8.7 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)
Exploitation statusExploited in the wild
Affected productsArch Linux Arch User Repository (AUR) packages; npm, Inc. (npm registry) atomic-lockfile; npm, Inc. (npm registry) js-digest; npm, Inc. (npm registry) lockfile-js
Weaknesses (CWE)CWE-494, CWE-506, CWE-522, CWE-829
ToolsTor onion-service C2
MITRE ATT&CK techniquesT1005 Data from Local System, T1014 Rootkit, T1027 Obfuscated Files or Information, T1036 Masquerading, T1041 Exfiltration Over C2 Channel, T1057 Process Discovery, T1059 Command and Scripting Interpreter, T1071 Application Layer Protocol, T1071.001 Web Protocols, T1083 File and Directory Discovery, T1090 Proxy, T1090.003 Multi-hop Proxy and 23 more in the attack flow
MotivationFINANCIAL
Target sectorstechnology, software-development, devops, open-source-community
Target regionsGlobal
Detection rules9 (1 shown free)
Sources15 cited sources

Detection coverage for Atomic Arch 1,619-package AUR hijack

As of 2026-07-18, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1498 across Splunk SPL, Microsoft KQL and Sigma, covering 26 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.

Free detection: Rust Infostealer 'deps' Execution and Mass Credential-Store File Access

Detects execution of the known 'deps' ELF64 PIE infostealer (by hash or path pattern src/hooks/deps) or bulk file-read access to browser cookie stores, SSH keys, npm/GitHub tokens, HashiCorp Vault tokens, cloud CLI credentials, and messaging session data by a process descended from npm/Bun/makepkg — the post-exploitation credential-harvesting stage of Atomic Arch.

Splunk SPL

index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode IN (1,11)
| eval Image=coalesce(Image, exe)
| eval TargetFilename=coalesce(TargetFilename, file_path)
| where match(Image, "(?i)/(hooks/)?deps$") OR Hashes="SHA256=6144D433F8A0316869877B5F834C801251BBB936E5F1577C5680878C7443C98B" OR match(TargetFilename, "(?i)(\.ssh/|\.npmrc|cookies\.sqlite|\.aws/credentials|\.docker/config\.json|vault-token|\.config/(slack|discord|teams|telegram))")
| stats count values(TargetFilename) as files_touched min(_time) as first_seen by host, Image, ParentImage, user
| where count >= 3

Microsoft KQL

let malwareHash = "6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b";
DeviceFileEvents
| where Timestamp > ago(24h)
| where SHA256 == malwareHash or FileName =~ "deps" or FolderPath has_any (".ssh", ".npmrc", "cookies.sqlite", ".aws\\credentials", ".docker\\config.json", "vault-token")
| where InitiatingProcessParentFileName has_any ("npm", "bun", "makepkg")
| summarize FilesTouched=make_set(FolderPath), Count=count() by DeviceName, InitiatingProcessFileName, InitiatingProcessAccountName, bin(Timestamp, 1h)
| where Count >= 3

Sigma

title: Rust Infostealer 'deps' Execution or Mass Credential-Store Access (Atomic Arch)
id: 9a2c4e6f-1b3d-4a5c-8e7f-2b4d6e8f0a1c
status: experimental
description: Detects execution of the known Atomic Arch 'deps' infostealer binary (by hash or path) or bulk credential-store file access by a process descended from npm/Bun/makepkg.
references:
    - https://www.truesec.com/hub/blog/supply-chain-attack-compromising-arch-linux-aur-packages-infostealer-rootkit
cve.na: true
author: AII-Detector — ThreadLinqs Intelligence
date: 2026-07-18
tags:
    - attack.credential-access
    - attack.t1555.003
    - attack.t1552.004
    - attack.t1528
    - attack.t1005
logsource:
    category: file_event
    product: linux
detection:
    selection_hash:
        Hashes|contains: '6144D433F8A0316869877B5F834C801251BBB936E5F1577C5680878C7443C98B'
    selection_path:
        Image|endswith: '/deps'
    selection_targets:
        TargetFilename|contains:
            - '.ssh/'
            - '.npmrc'
            - 'cookies.sqlite'
            - '.aws/credentials'
            - '.docker/config.json'
            - 'vault-token'
    condition: selection_hash or selection_path or selection_targets
falsepositives:
    - Legitimate backup or credential-rotation tooling reading the same file classes in bulk
level: critical

Known false positives:

  • Password managers, backup agents, or credential-rotation scripts legitimately reading the same file classes

Tuning notes: Whitelist known EDR/backup agents that legitimately enumerate these paths; prioritize alerts where the parent lineage includes npm/bun/makepkg within the same session.

8 more detection rules (Splunk SPL, Microsoft KQL, Sigma) · unlock with TL Creds. Sign up free to unlock the detection rules or query them with the Threadlinqs MCP server (Purple)
  • Rogue AUR-Helper-Triggered npm/Bun Preinstall Chain to Unsigned Binary Execution · unlock with TL Creds
  • Suspicious systemd Persistence Unit Created Outside Package-Manager Transaction · unlock with TL Creds
  • Anti-Debugging PTRACE Denial and NETLINK_SOCK_DIAG Interference by Unknown Process · unlock with TL Creds
  • Known Malicious npm Package Install ([indicator] / [indicator] / [indicator]) · unlock with TL Creds
  • Bulk Messaging/Cloud/CI-CD Token Harvesting Consistent With '[indicator]' Infostealer Collection · unlock with TL Creds
  • Dual-Channel Exfil: Tor/SOCKS Proxy Tasking Beacon + temp.sh Bulk Upload · unlock with TL Creds
  • AUR/npm/Bun Lifecycle Script Spawning Suspicious Child Process (Atomic Arch) · unlock with TL Creds
  • eBPF Rootkit Pinned Map Creation Under /sys/fs/bpf (getdents64 Hiding) · unlock with TL Creds

Indicators of compromise for Atomic Arch 1,619-package AUR hijack

As of 2026-07-18, Threadlinqs Intelligence tracks 26 indicators of compromise for TL-2026-1498.

Sample indicators (2 of 26)

  • URL: hxxps://temp[.]sh/upload
  • File hash: 6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b

Defanged, TLP:CLEAR. Full set of 26 indicators: unlock with TL Creds.

26 indicators of compromise · unlock with TL Creds. Compare plans

How Atomic Arch 1,619-package AUR hijack works

The campaign, dubbed "Atomic Arch" and tracked as Sonatype-2026-003775/003808, compromised 1,619 unique AUR package names across two waves before the npm packages were pulled and AUR maintainers reverted the packages.

The Atomic Arch campaign is a two-stage software supply chain attack that abused the Arch User Repository's (AUR) lax package-adoption governance to distribute credential-stealing malware and a stealth rootkit to Arch Linux and Arch-derivative users. Rather than tampering with the source code of the AUR packages themselves — which would be visible in package diffs and trigger community scrutiny — the attackers exploited AUR's 'orphan adoption' process, in which any registered user can request stewardship of a package abandoned by its original maintainer with no cryptographic continuity or identity verification. At least seven attacker-controlled AUR accounts (krisztinavarga, franziskaweber, tobiaswesterburg, ellenmyklebust, arojas — impersonating a legitimate maintainer handle, custodiatovar, veramagalhaes) adopted hundreds of orphaned packages and modified their PKGBUILD build scripts and .install hooks to invoke `npm install atomic-lockfile minimist chalk` (first wave, ~408 packages, discovered June 11, 2026) or a Bun-based `js-digest`/`lockfile-js` fetch (second wave, expanding the campaign to 1,619 verified unique package names by June 12, 2026).

Because AUR packages are built locally by the end user via `makepkg` (often wrapped by helpers such as `yay` or `paru`), the malicious npm/Bun lifecycle script executes with the full privileges of the invoking user at build time — this is the same trust model abused, just with an added layer of indirection through the npm/Bun ecosystem so that the AUR package tree itself stays 'clean' under manual review. The npm package `atomic-lockfile` (v1.4.2) shipped a `preinstall` lifecycle hook (`"preinstall": "./src/hooks/deps"`) that executed a bundled ELF64 PIE binary named `deps` (3,040,376 bytes, SHA-256 `6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b`), compiled in Rust.

The `deps` binary is a full-featured infostealer targeting the credential material that underpins developer workstation and CI/CD pipeline trust: browser cookie databases and session tokens (SSO, cloud consoles, SaaS), SSH private keys and known_hosts, GitHub and npm developer tokens, HashiCorp Vault tokens, Docker/Podman credentials, cloud provider access keys, Slack/Discord/Microsoft Teams/Telegram session data, OpenAI/ChatGPT bearer tokens, shell histories, and cryptocurrency wallet data. Exfiltration is split across two channels to separate control-plane and bulk-data traffic: a Tor onion-service C2 endpoint (`POST /api/agent`, reached via a local loopback SOCKS/Tor proxy) handles tasking and result reporting, while bulk file content is uploaded via `POST /upload` to the public ephemeral file-sharing service temp.sh — a technique that blends stolen-data exfiltration into traffic that looks like legitimate file-sharing activity and avoids attacker-registered infrastructure.

On systems where the malicious build executes with root privileges (common for AUR installs of system-level packages), `deps` additionally loads an eBPF-based rootkit (source referenced internally as `scales.bpf.c`) using standard libbpf loader APIs (`bpf_object__load`, `bpf_program__attach`, `bpf_map__pin`). The rootkit attaches to the `getdents64()` syscall — the kernel entry point underlying directory-listing operations — and filters directory-entry results before they reach user space, using three pinned BPF maps at `/sys/fs/bpf/`: `hidden_pids` (suppresses process IDs from tools like `ps`), `hidden_names` (removes filenames from listings for tools like `ls`/`find`), and `hidden_inodes` (hides by inode number to defeat alternate access paths). The rootkit also interferes with `PTRACE_ATTACH`/`PTRACE_SEIZE` to block debugger attachment to hidden processes and hooks `NETLINK_SOCK_DIAG` to conceal socket inodes from `/proc/net/*` and related diagnostics. Persistence is established via systemd service units (`Restart=always`) installed at `/etc/systemd/system/` for root compromises or `~/.config/systemd/user/` for unprivileged ones.

Confirmed/reported compromised AUR packages include `alvr` (VR streaming), `premake-git` (build tooling), and variants referencing `monero-wallet-gui` (with community reporting of a possible secondary cryptominer payload on some builds); the authoritative deduplicated list of 1,619 package names is maintained by the community `aur-malware-check` tracker. The malicious npm packages `atomic-lockfile` (1.4.2) and `js-digest` (4.2.2, published 2026-06-12T10:21:34Z and unpublished at 11:53:23Z) and `lockfile-js` (1.4.2, published 13:01:03Z, unpublished 16:29:49Z) were removed from the npm registry within hours of discovery, and AUR maintainers reverted the affected PKGBUILDs, closing the active infection window to roughly June 10–12, 2026. Security researchers stress that uninstalling the AUR package or npm dependency does not remediate an already-executed payload — any host that built or updated an affected package during the window must be treated as fully compromised, with all credentials, SSH keys, API tokens, and session cookies rotated.

MITRE ATT&CK techniques by tactic:

Collection

T1005 Data from Local System; T1560 Archive Collected Data

Defense Evasion

T1014 Rootkit; T1027 Obfuscated Files or Information; T1036 Masquerading; T1564 Hide Artifacts; T1564.001 Hidden Files and Directories

Exfiltration

T1041 Exfiltration Over C2 Channel; T1567 Exfiltration Over Web Service

Discovery

T1057 Process Discovery; T1083 File and Directory Discovery; T1518 Software Discovery

Execution

T1059 Command and Scripting Interpreter; T1204 User Execution; T1610 Deploy Container

Command and Control

T1071 Application Layer Protocol; T1071.001 Web Protocols; T1090 Proxy; T1090.003 Multi-hop Proxy

Initial Access

T1195 Supply Chain Compromise; T1195.001 Compromise Software Dependencies and Development Tools; T1195.002 Compromise Software Supply Chain

Credential Access

T1528 Steal Application Access Token; T1539 Steal Web Session Cookie; T1552 Unsecured Credentials; T1552.001 Credentials In Files; T1552.004 Private Keys; T1555 Credentials from Password Stores; T1555.003 Credentials from Web Browsers

Persistence

T1543.002 Systemd Service; T1547 Boot or Logon Autostart Execution

Privilege Escalation

T1548 Abuse Elevation Control Mechanism

Resource Development

T1585 Establish Accounts; T1586 Compromise Accounts

defense-impairment

T1685 Disable or Modify Tools

Remediation for Atomic Arch 1,619-package AUR hijack

Patches

  • No vendor patch applicable — remediation is package reversion (already performed by AUR maintainers) plus npm registry takedown of atomic-lockfile, js-digest, and lockfile-js (already completed)

Immediate actions

  • Audit /var/log/pacman.log and shell/AUR-helper history for AUR package installs or updates between 2026-06-10 and 2026-06-12
  • Cross-reference installed/updated AUR packages against the aur-malware-check tracker's 1,619-package list (data/campaigns/aur-infected/packages.txt)
  • Check ~/.npm and ~/.bun caches for references to atomic-lockfile, js-digest, or lockfile-js
  • Scan for the src/hooks/deps ELF binary (SHA-256 6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b) on disk and in process history
  • Inspect /sys/fs/bpf/ for pinned maps named hidden_pids, hidden_names, or hidden_inodes indicating the eBPF rootkit is active
  • Review systemd units under /etc/systemd/system/ and ~/.config/systemd/user/ for unexplained Restart=always services created during the window
  • Treat any host that built an affected package with root privileges during the window as fully compromised, not just credential-exposed

Workarounds

  • Avoid adopting or rebuilding AUR packages that were recently transferred to a new maintainer without independent verification of the new maintainer's identity/history
  • Use the community aur-malware-check detection tool to scan hosts for known IOCs, hashes, persistence artifacts, and eBPF rootkit maps

Longer-term hardening

  • Rotate all SSH keys, GitHub/npm tokens, HashiCorp Vault tokens, cloud provider credentials, Docker/Podman credentials, and messaging-platform (Slack/Discord/Teams/Telegram) sessions on any affected host
  • Re-image hosts where root-level eBPF rootkit execution is suspected or confirmed, since kernel-level hiding undermines confidence in live forensic tooling
  • Adopt AUR-helper wrappers or CI policies that pin AUR packages to known-good commit hashes and diff PKGBUILD changes before rebuild, rather than trusting adoption metadata alone
  • Restrict or sandbox local package builds (makepkg/yay/paru) so build-time npm/Bun postinstall/preinstall scripts cannot reach developer credential stores or run as root by default
  • Monitor outbound Tor/onion-routed traffic and uploads to temp.sh and similar ephemeral file-sharing services from developer and CI/CD hosts as anomalous exfiltration indicators

Affected and fixed versions

  • Arch Linux — Arch User Repository (AUR) packages
    Vulnerable versions: 1,619 unique AUR package names adopted/modified 2026-06-11 to 2026-06-12, including alvr, premake-git, monero-wallet-gui variants
    Fixed in: Reverted by AUR maintainers post-disclosure; affected packages restored to pre-compromise PKGBUILD state
  • npm, Inc. (npm registry) — atomic-lockfile
    Vulnerable versions: 1.4.2
    Fixed in: Removed from registry
  • npm, Inc. (npm registry) — js-digest
    Vulnerable versions: 4.2.2
    Fixed in: Removed from registry
  • npm, Inc. (npm registry) — lockfile-js
    Vulnerable versions: 1.4.2
    Fixed in: Removed from registry

Timeline of Atomic Arch 1,619-package AUR hijack

  • Attacker-controlled AUR accounts begin adopting orphaned/abandoned AUR packages and modifying PKGBUILD/.install hooks; earliest activity within the confirmed infection window.
  • First wave discovered: ~408 AUR packages modified to run `locked-ioc-2` during build, dropping the locked-ioc-14 npm package (v1.4.2) with a malicious preinstall hook.
  • AUR maintainers begin reverting affected PKGBUILDs to pre-compromise state, closing the active infection window.
  • Community tracking confirms the campaign has expanded to 1,619 verified unique AUR package names across both waves; Sonatype assigns advisory Sonatype-2026-003775 (CVSS 8.7) for locked-ioc-14 and Sonatype-2026-003808 for locked-ioc-23/locked-ioc-20.
  • Malicious npm package locked-ioc-23 v4.2.2 published, part of a second delivery vector using the Bun runtime.
  • locked-ioc-23 v4.2.2 unpublished from the npm registry after discovery.
  • Malicious npm package locked-ioc-20 v1.4.2 published, expanding the second wave.
  • locked-ioc-20 v1.4.2 unpublished from the npm registry.
  • Mainstream security press (The Hacker News, BleepingComputer, SecurityWeek, StepSecurity) publishes coverage naming the campaign "Atomic Arch."
  • Cloud Security Alliance Labs and Wiz publish deep technical analyses of the eBPF rootkit's getdents64 hook and BPF map-based hiding mechanism.
  • Community detection tool aur-malware-check published on GitHub, consolidating IOCs, compromised package lists, and attacker AUR account names.
  • Truesec publishes consolidated blog analysis; Arch Linux community publishes the full list of compromised AUR packages via md.archlinux.org.

Sources cited for Atomic Arch 1,619-package AUR hijack

Previous and next in supply chain

Further reading

Drafted by the Threadlinqs research pipeline from 15 sources; published ; last updated —.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level

Latest Threats