Open Source 2018-07-07 · 1 day ·Data Exfiltration, Persistence, Remote Code Execution

AUR acroread PKGBUILD ran remote shell scripts

In July 2018, an attacker adopted the orphaned acroread package in the Arch User Repository and added a curl-to-shell install path that fetched remote scripts, installed a systemd timer, and collected host data.

Story

The acroread incident was a small compromise, but it is a clean example of how community package metadata becomes a distribution point. Adobe Reader was not backdoored upstream, and Arch's official binary repositories were not compromised. The poisoned layer was the AUR package recipe that Arch users could pull into a normal local build.

The package was attractive because nobody was actively maintaining it. acroread wrapped an old Linux build of Adobe Reader, a native version no longer supported by Adobe. On July 8, 2018, Arch users noticed that an AUR account named xeactor had adopted the orphaned package and pushed a PKGBUILD change with the classic red flag: a remote script fetched from ptpb.pw and piped into bash.

That first script was not noisy malware. It staged the rest of the intrusion. The script created xeactor.service and xeactor.timer under systemd paths, set the timer to run every 360 seconds, and downloaded a second script from ptpb.pw. The second script collected system details and posted them to Pastebin through an API key. Public analysis did not find a self-update mechanism or a destructive payload, but the installer path had already crossed the important line: a trusted community build recipe was executing attacker-controlled shell code during installation.

The response was fast. The report hit the aur-general list at 05:48 UTC on July 8. Six minutes later, Trusted User Eli Schwartz said the account had been suspended and the commit reverted. He then found and fixed two other packages that had been modified the same way. Arch later named the affected versions as acroread 9.5.5-8, balz 1.20-3, and minergate 8.1-2.

The important boundary is scope. AUR is user-produced content and has always carried a review burden for the user. That does not make the incident irrelevant to supply-chain history; it makes the trust lesson more precise. The attacker did not need to compromise Adobe, Arch package signing, or pacman. They needed an abandoned AUR package, a plausible maintainer action, and an install script that too many users would let run without reading.

Affected Artifacts

acroread

aur · aur.archlinux.org · repository · Package Build Script
Observed
2018-07-07 to 2018-07-08
Compromised Versions
Fixed
Not listed
Evidence
distribution: aur.archlinux.org/cgit/aur.git/commit, advisory: lists.archlinux.org/pipermail/aur-general/2018-July/034151.html, commit: b3fec9f2f16703c2dae9e793f75ad6e0d98509bc, account: xeactor , +7 more
  • The AUR cgit link now reports a bad commit reference, but the commit ID is preserved in the Arch aur-general report and contemporaneous coverage.
  • This was an AUR package recipe compromise, not an Adobe Reader upstream compromise and not a compromise of Arch's official binary package repositories.

balz

aur · aur.archlinux.org · repository · Package Build Script
Observed
2018-07-07 to 2018-07-08
Compromised Versions
Fixed
Not listed
Evidence
advisory: lists.archlinux.org/pipermail/aur-general/2018-July/034153.html, advisory: lists.archlinux.org/pipermail/aur-general/2018-July/034169.html, account: xeactor, observable: Arch Trusted User Eli Schwartz said two other packages had been maliciously modified the same way; Morten Linderud later listed balz 1.20-3 as one affected version.

minergate

aur · aur.archlinux.org · repository · Package Build Script
Observed
2018-07-07 to 2018-07-08
Compromised Versions
Fixed
Not listed
Evidence
advisory: lists.archlinux.org/pipermail/aur-general/2018-July/034153.html, advisory: lists.archlinux.org/pipermail/aur-general/2018-July/034169.html, account: xeactor, observable: Arch Trusted User Eli Schwartz said two other packages had been maliciously modified the same way; Morten Linderud later listed minergate 8.1-2 as one affected version.

Incident Context

Motive
Data Collection
Attribution
Person
Cause
Orphaned Package Takeover
Transitive
No
Actor
xeactor

External References

Source record: oss/attacks/arch-aur-acroread/meta.yaml