6 ms·
AURpocalypse now: a look at the recent AUR attacks
- rvz 4mo agoWho still uses Arch btw after this?
- akerl_ 4mo agoIs there another distro that has an equivalent of the AUR with handling you think is preferable?
- orbital-decay 4mo agoAUR is fast and loose and doesn't do much "handling" by design, so it's hard to find any equivalent repo. But there's always a tradeoff between fresh (nixpkgs unstable, might be the closest) and tested (Debian).
- akerl_ 4mo agoAUR isn't just the testing repo of Arch; it's explicitly just an open spot where anybody can put up "here's a PKGBUILD for folks". I don't see how it's like either the Nix or Debian examples.
- orbital-decay 4mo agoWell, Nix has NUR which is a direct equivalent but it's not nearly as broadly used and I assume "here's a PKGBUILD for folks" is already too permissive for you if you're asking. There's no maintainer vetting process in nixpkgs as far as I know, anyone can own a bunch of packages. There are quality standards and it's not "here's a bunch of nix code for folks" but it's the next possible thing in the line after that.
- akerl_ 4mo agoIt seems like you may have mistakenly inferred that I have issues with the AUR? I don't; I use Arch on 100% of my personal servers, have done so for something approaching 20 years, and don't see myself changing. But I treat the AUR for what it is: a place where anybody can say "here's a PKGBUILD for folks" and it's on me to evaluate it on its merits. I was legitimately asking the person upthread what other distro they felt had a better model for this kind of sharing, because they seemed to think this was a reason for Arch users to jump ship and I was curious what they thought would be the elements of a better system.
- isityettime 4mo agoThe NUR was sort of convenient before flakes were a thing, but now that there's a really common convention for sharing Nix code few use it. I bet most people who came across Nix in the last 4 years have never even heard of it.
- guilhas 4mo agoGentoo But let's hope we get this solved, like peer review model, vouch, or something It is very good to be able to find build/install files for everything
- akerl_ 4mo agoGentoo's model appears to be basically the same? Like the AUR, anybody can submit basically anything they want. The requirements amount to containing valid packages, having a bugzilla account, and putting your package definitions in VCS somewhere.
- butterknife 4mo agoIn overlays that need to be explicitly enabled. Not as convenient as yay yolo. We can also add npm to package.mask.
- BoingBoomTschak 4mo agohttps://wiki.gentoo.org/wiki/Project:GURU https://wiki.gentoo.org/wiki/Project:GURU
- akerl_ 4mo agoYay isn’t in the official arch repos? The only way you get stuff from the AUR is by explicitly pulling down to repo and building with makepkg or explicitly finding and installing an AUR “helper”.
- dokyun 4mo agoSlackBuilds.org is pretty sensible.
- dizhn 4mo agoOpensuse OBS. Tiny bit better because the build environment doesn't allow a network and binaries are not allowed as far as I know. Fedora has a similar thing COPR. Both of these support building packages for other distros as well as appimage, flatpak etc. With opensuse official packages also use the same infrastructure. It is actually quite fascinating and powerful. (I know a lot less about COPR but I would imagine it would be equally as good. Wezterm switched to that for its packages)
- einsteinx2 4mo agoNo because there’s no way to handle an open submission repository at all. It’s impossible by design since anyone can submit packages to it. I would never use anything equivalent to AUR on any distro due to the obvious security implications. That’s been my position for as long as I have known about Arch. I never understood Arch users using the AUR as a selling point for the distro. Then again I live in the opposite end of the spectrum where I run only Debian Stable on my Linux desktop as well as my servers, where packages make it through Sid and Testing before getting to Stable and I can be relatively sure any supply chain attacks have been caught by then (like xz for example which was caught before it left Sid). For those unfamiliar with Debian, Sid is basically a rolling release similar to using Arch with the official repositories (which is already dangerous without even touching the AUR), then packages move to Testing, then later eventually make it to Stable.
- akerl_ 4mo agoThe AUR is, in my opinion, a pretty convenient selling point if you use any esoteric software. It’s basically like a crowdsourced set of people’s tips and tricks for installing stuff on Arch, all written in the format Arch uses for packages. Similar to how I’d not blindly take code from an AI and whack it into production, I wouldn’t blindly take an AUR PKGBUILD and execute it. But it’s nice to have a place to go see “huh, I wonder if anybody has shared their approach so I can borrow from it”.
- einsteinx2 4mo agoThat’s a perspective on the AUR that I hadn’t really seen before from Arch advocates, in my (admittedly hazy memory) it’s usually mentioned in the sense of “Arch is great because you always get the latest packages in the official repos and basically anything you possibly need you can just install from the AUR”. If you’re actually using it just as a reference guide essentially then it seems like there’s some value there. However, I’ll push back a bit from my perspective as a Debian Stable user. I would consider even the official Arch repositories to be dangerous just like I consider Debian Sid’s repos to be dangerous (packages are too new and not sufficiently vetted). Then regarding installing packages not available in the main Debian repos, I’ve never really had any issues installing them either as there is always either an official developer run apt repo I can add, or an official deb package, or it just builds directly from official source without tweaks. So I’ve honestly never felt like I was missing “a crowdsourced set of people’s tips and tricks for installing stuff” on Debian as I’ve just never needed one. I do realize that installing the latest packages directly from a developer’s repo or latest deb package or source is as dangerous as the Debian Sid or Arch official repos for the same reason (too new, not vetted), but the difference is those are only a tiny portion of the packages installed on my system (like a percent of a percent, maybe a half dozen packages out of hundreds). If I ran Sid or Arch, it would be 100% of the packages on my system which is an attack surface orders of magnitude larger. EDIT: It did just occur to me after posting this reply that I use Homebrew pretty extensively as a package manager on macOS and its official repos are equivalent to Sid/Arch official repos, so I may be a bit of a hypocrite here :P
- tormeh 4mo agoWindows where you just download .exe and .msi files from random websites. Not a Linux distro, but the closest security model I can think of.
- akerl_ 4mo agoYou think that users having to find and download software from the Internet at large is both similar to the AUR model and has preferable handling of these issues? Can you elaborate?
- tormeh 4mo agoTo me, installing software from the AUR sounds a lot like downloading Windows software from .info sites and torrents. It's mostly fine, but it's not exactly a surprise when things go wrong.
- giancarlostoro 4mo agoI still do, I just don't touch AURs anymore.
- anagram666 4mo agoIf you want something from the AUR, just don't be lazy, read the pkgbuild.
- segfalt_ 4mo agoI do, I'm just choosy about aur packages I use
- rcxdude 4mo agoThe AUR has consistently had warnings around it of 'verify the PKGBUILD', far more so than any other package repository that allows anyone to sign up. Probably the only notable difference is the ease of taking over an orphaned package.
- zbentley 4mo agoThe AUR is not the Arch package manager or repository. The main Arch package repos are managed similarly to Debian, or Fedora, or whatever--caveat Arch's nature as a rolling release, but in terms of vetting and ownership/security, the approaches are similar. pacman installs from regular, real, vetted repositories by default. pacman will never install from the AUR. pacman is the official Arch package manager and the only one that is provided with the main Arch distribution/install instructions. The AUR is, as many others have pointed out, a deliberately un-vetted pile of random Git repos. Arch deliberately doesn't even ship with a default one-click installer for AUR packages; their published guidance is "git clone this stuff from wherever it's hosted and build it at your own risk". Plenty of third-party, non-Arch-blessed tools turn that into a one-click process, but it's not "part" of Arch itself--at least not any more than, like, curl | bash or directions on how to add rando websites to /etc/apt/sources.list.d is part of Debian and friends. I've used Arch as a daily driver for years. At peak, I've had five (5) total packages, with no transitives, installed from the AUR. Today I have one: sublime-text-4. It's perfectly possible--and extremely reasonable for many users, even power users--to live in an AUR-less world, or to use so few AUR packages that the guidance of "read what you're installing, doofus" is manageable and not onerous.
- QuaternionsBhop 4mo agoI was not affected
- beej71 4mo agoI do. I just keep reading the diffs on the PLGBUILDs.
- AshamedCaptain 4mo agoI'll note that OpenSuse also has Packman which a shitton of people enable (for codecs), has also 'one namespace only' an looser policies than the main distro. I do not think this something you can escape by switching distro.
- cqz 4mo agoYes, the only reason this isn't happening in other distros is simply popularity. Namespacing is the solution, and as mentioned in the article some ditros do indeed have namespaced user repos, like Fedora's Copr. The trust model of a flat namespace user repo is completely broken when the maintaining user can change at any moment.
- PalmPilotProMax 4mo agoIsn't Arch's AUR flat namespace quite unique? Ubuntu's PPAs are also not flat.
- isityettime 4mo agoopenSUSE's OBS and Gentoo's overlays aren't a single shared repo either.
- deleted 4mo ago[deleted]
- badreligion42 4mo agoPackman is more akin to rpmfusion, than AUR. OBS is the AUR equivalent for OpenSUSE.
- isityettime 4mo ago"One namespace" is also technically true but doesn't work the same way with dnf or zypper as it does with pacman. dnf and zypper both make it easy to be explicit about the priorities of your repos and also to track which packages come from which repos and prevent that from changing. Plus openSUSE has a generously free public instance of the Open Build Service that you can easily use to host your own repos, and which hosts many individual repos you can add for specific purposes. When I ran openSUSE I always just ran my own repo there with only the extra packages I actually wanted, often just "forking" packages from repos hosted by well-known openSUSE developers so that I didn't have to manage updating the source packages myself but still didn't pull in the whole world from those repos and also didn't implicitly trust anything as loose as the AUR. OBS is more like Ubuntu's Launchpad or Fedora's CO0R than the AUR. Random strangers can't take over the packages of others just because they go idle, and it's a bunch of separate repos, not one. Totally different trust model.
- nickjj 4mo agoIn case anyone missed it, the latest version of yay (v13+) supports being able to skip recently added packages through its new Lua extension system https://jguer.github.io/yay/lua.html#upgrade-selection-hooks https://jguer.github.io/yay/lua.html#upgrade-selection-hooks. You can control the threshold since it's just user configuration now. A bunch of common yay commands also return back the last updated time of a package thanks to https://github.com/Jguer/yay/pull/2846 https://github.com/Jguer/yay/pull/2846.
- dSebastien 4mo agoHope Omarchy will make that a default:)
- kdeldycke 4mo agoThe thing is that hook is not enough: `UpgradeSelect` only applies to `yay -Syu` so it only filters the upgrade list. Nothing protect you from a `yay -S foo` install and its dependencies. So this is not a guarantee or enforcement of a minimum release-age. Actually writing this reply I went ahead and pointed that out in an issue at: https://github.com/Jguer/yay/issues/2883 https://github.com/Jguer/yay/issues/2883
- vlovich123 4mo agoThe issue you linked isn’t anything to do with the issue you’re describing. Wrong one referenced?
- AquaWeasel 4mo agoDespite that official Arch repos weren't affected in this attack, I would not recommend using Arch (or any rolling release distro) for anything that requires security. (Imagine if the xz backdoor targeted Arch...) An Arch maintainer that I personally know once admitted that he rarely review upstream changes when bumping package versions. He only does that when the build breaks. I can't blame him for what he did, since it's not reasonable to ask package maintainers to spend all their time on those stuff, especially in this "Age of AI" where more and more software are being aggressively refactored (or rather rewritten) and added more features. What we can do is choosing a stable distro (like Debian) where packages are more thoroughly reviewed, and apply security practices (such as TOTP, sandboxing browsers and video players, etc.) even though they cause inconvenience.
- zbentley 4mo ago> An Arch maintainer that I personally know once admitted that he rarely review upstream changes when bumping package versions. Cool story bro. Assuming that's common, I have trouble understanding why Arch (non-AUR) is any more at risk than Debian--besides the latter being more popular and having more users/incidental testers, which is a real benefit if that's your goal, but has its own drawbacks (like older and known-vulnerable packages lingering for longer before updated releases are made available). > it's not reasonable to ask package maintainers to spend all their time on those stuff, especially in this "Age of AI" Aren't Debian and friends similarly at risk of this as well, then? > security practices (such as TOTP, sandboxing browsers and video players, etc.) I'm not sure if those are more or less prevalent on Arch; I know that many IDEs and GUI programs I've installed on Arch ran by default in Flatpaks or similar, and Debian/Ubuntu like Snaps, but I'm honestly not familiar with whether those ecosystems have significant and/or equivalent penetration in different distros.
- skjfjnflw 4mo agoDebian freezes the package versions on release of each Debian version and then cherry picks critical fixes for the rest of the Debian version's lifecycle. So even if they never review the code (and I don't expect them to), they're less likely to release malware before it's discovered by others.
- Ferret7446 4mo agoDevil's advocate, except partially serious. This is a good thing, because the warning about checking everything you download from the AUR, which has always existed, is now actually "enforced". People respond to consequences.
- cookiengineer 4mo agoNote that the AUR attacks were part of the larger miasma worm campaign, gradually trying to gain more control through various package ecosystems since the RedHat prototype campaign. Mitigation Tool: https://github.com/cookiengineer/antimiasma https://github.com/cookiengineer/antimiasma Blog Post with details: https://cookie.engineer/weblog/articles/malware-insights-miasma-campaign.html https://cookie.engineer/weblog/articles/malware-insights-mia...
- cozzyd 4mo agoI love the smell of npm install malware in the morning.
- stephan-cr 4mo agoYes, feels like in those cases npm and bun are not far away. Coincidence?
- scott_w 4mo agoSimplicity of the stack I think. I don’t think this is an npm-specific issue as the attacker could also download a bash script and run that instead.
- MintPaw 4mo agoA side note, isn't package maintenance something that can actually be solved to some extent by LLMs? The prompt would be something like "Clone this repo and build this package while building/bundling as few other packages as possible with minimal code changes." Then set it in a loop on all the packages for a particular system, I don't have experience in package maintenance and would be curious what kind of issues would come up.
- isityettime 4mo agoPackaging for Linux distros is about review, following standards and conventions, authority, and responsibility. (And maybe also sometimes patching for compatibility.) LLMs can sometimes help with some of the mechanical parts, but the curation and trust stuff not so much.
- OJFord 4mo agoAnd everyone does this individually you mean, rather than sharing the result as 'a package'? It's an interesting idea, not sure I'd recommend it broadly, but if someone told me they prefer to trust an LLM than third-parties I'd get it at least.
- jchw 4mo agoThe AUR really has been known to be low-hanging fruit for bad actors, which makes it somewhat surprising it took this long for it to be taken advantage of. I have many opinions regarding this situation, but it mostly doesn't matter. AUR staff and AUR helper developers will figure out what they want to do, hopefully they will find a good approach. But what I personally take away from this is simply that it has become worth it to target desktop Linux with malware. Or at least, moreso than previously. It is perhaps a good sign in some ways that the desktop is starting to be taken more seriously. The bad news, of course, is that the Linux desktop is a bit of a train wreck in terms of security hygeine. It's getting better, and Linux does have the advantage of having some powerful primitives to exploit, but the desktop suites come from a totally different world, and I fully expect we'll also see more malware propagated through KDE's New Stuff integration (which goes through Pling.)
- Normal_gaussian 4mo agoI'm not sure if it is that the desktop is being taken more seriously, or that its easier to write code that works on many distributions and configurations, greatly reducing the cost and increasing the value of the existing 'market'.
- npodbielski 4mo agoI would say that it is now very easy to steal 'AI' providers credentials this way. And then you can use them to write more malware or scam or use models for generating speech to call people and get them to 'redeem'. Or at leat to me this seems more sensible than injecting just malware.
- exceptione 4mo ago> It's getting better, and Linux does have the advantage of having some powerful primitives to exploit, but the desktop suites come from a totally different world, When opening the printer configuration page in the KDE configuration panel, I was pleasantly surprised to see it's process runs wrapped inside a bwrap session. Cups is a bit of old and dangerous; I'm glad they sealed that off inside a sandbox. If you ask me, I would make this approach the standard for any software. The configuration panel for fonts doesn't need network access, so at least `bwrap --unshare-net`
- orf 4mo ago> New user registration was stopped on June 11 and then re-enabled after the project added Anubis to try to foil the attacker's mass account registrations. That did not work This confuses me - why would a proof-of-work anti-scraping system like Anubis prevent registrations?
- lemagedurage 4mo agoImplementing a bot to do registration is not a "copy as curl " click away anymore, and creating millions of accounts maybe become computationally expensive. This is not much, but it could deter some low effort adversaries.
- orf 4mo agoI see that, but the adversary wasn’t a low effort one, and didn’t need millions of accounts.
- stevefan1999 4mo agoWell all of those attacks are just supply chain attacks, and it is basically exploiting people's trust. With LLMs, the speed and velocity of pumping out malice raised are now significantly faster. It is so sad that every goodwill eventually got enshittified as well.
- BoingBoomTschak 4mo agoFantastic and anti-sensationalism write-up from LWN, as usual. They continue to deserve my monies.
- ChocolateGod 4mo agoThe AUR is effectively a pastebin for PKGBUILD files. Some people (many of which don't even use Arch itself) have been treating and advertising it as something different. It's not a software distribution method meant for normal computer users.
- cbarrick 4mo agoAnd for those that aren't aware, a PKGBUILD file is just a bash script.
- maxmax33 4mo agoHumble question: how do you find out if your system has been affected by a malware? I know that for AUR there was a specific list of affected packages (that I checked, and haven't installed any of them), but I'm interested more in a general way. It could be from AUR, npm, or many other sources. Some malware could break and lock immediately the system, but other could stay there silent for months, so how to find out if there is any? I haven't run an antivirus since I last used Windows 20 years ago.
- regexorcist 4mo agoYou might start with ClamAV and something like Little Snitch.
- samtheprogram 4mo agoWould love to know the rebuttal / why you were downvoted.
- embedding-shape 4mo agoIn theory, you'd mostly care about exfiltration of data, so watching/actively managing exactly what network connections your computer/network can do, would give you upfront notification when it happens, but of course not earlier. And if your root/hardware somehow is infected, your monitoring/management tools might be affected too, so then you're basically out of luck except with external network gear outside of your computer. But then those could be infected too, and so on. Ultimately I'd say it depends on your risk profile, but using something to actively approve/deny network connections on your local machine, is a great start that'd defeat most of these simpler "exfiltrate information ASAP" malware that seems popular at the moment.
- diogenes_atx 4mo ago> you'd mostly care about exfiltration of data, so watching/actively managing exactly what network connections your computer/network can do, would give you upfront notification when it happens If you have a list of good CLI utilities, you could run them in a bash script (e.g., network-monitor.sh), which would run in the background, and then redirect the output data to another file (e.g., network-monitor.txt). The key concept here is "baseline" -- you need to know what normal baseline network activity looks like, so that you can identify anomalous behavior. The way to establish a baseline is to gather a lot of data from the system. The following are a few useful command line utilities to use for a host intrusion detection system (HIDS) using a simple network monitoring bash script. However, I am not sure exactly how to tweak the options. Also need to find a way to check for data exfiltration: -list open ports and processes that own them: netstat -lnp -show open network ports: lsof -i; netstat -an | grep -i listen; netstat -nap Then it would be relatively easy to write a python script with regex tools to parse the network-monitor.txt file, establish a baseline, analyze the data for patterns and search for anomalous behavior. Besides network monitoring, there are other command line utilities you can use to check the system for possible intrusion, which you could run in a separate bash script as part of your Host Intrusion Detection System (e.g., hids-users.sh): -show members of root group: cat /etc/group | grep root -show users logged in: w #if you are the only user, you should not see more than one account logged in -search for all accounts with UID of 0: grep :0: /etc/passwd #ideally there should be only one UID of 0 on the system, but attacker can create more. -check that daemons who never log in have * or !, meaning no passwd: cat /etc/shadow -look for orphaned files, possible sign of attacker temp account deleted: find / -nouser -print -search for new user accounts that are not part of regular build: sort -nk3 -t: /etc/passwd #sort numerically third column (UID), colon delim (-t:) EDITS: several small changes for clarity and also in response to comment below
- mentalgear 4mo agoThe funny thing is: with FOSS you know what's going on attack-wise as they are transparent , but there must be huge upheaval in the closed source (e.g. MS) software that is just kept quiet by stock-price-chasing executives.
- ameliaquining 4mo agoA lot of people in this thread seem to be treating this situation as a referendum on the security of package repositories that allow anyone to create a package. Possibly because that's interesting to more people, since npm and PyPI are more widely used than Arch. But unless I've badly misunderstood something, the key thing that made this attack possible is this "orphaned" thing that lets you grant write access to an existing package to the first person who claims it, without any control over who that is. I don't see how this could ever be a safe thing to do, I'm not aware of any other package repository that has it, and I struggle to guess what whoever built it was thinking. If AUR just turned off that misfeature, they wouldn't be having this problem. (The article quotes someone involved as saying that the "orphaned" feature is good because good actors can also use it, but that seems irrelevant if it also opens up an unmitigable machine-takeover vulnerability. World-writable single-namespace systems like Wikipedia work by having humans proactively checking for bad changes, and also by it not being that bad if a page is briefly defaced, since you can't push malware to users' machines that way.)
- DoctorOetker 4mo agothere have been multiple package list checkers released, but unclear which ones are trustworthy, I can't immediately find a list from the official channels (through AUR website) to such approved scanners?
- diogenes_atx 4mo agoThere are automated scripts to check if the infected AUR packages are installed on your system: https://forum.endeavouros.com/t/malicious-aur-checkup-script/80114/14 https://forum.endeavouros.com/t/malicious-aur-checkup-script... https://github.com/lenucksi/aur-malware-check https://github.com/lenucksi/aur-malware-check
- jzer0cool 4mo agoWhat is a good review? Or different tiers of review? When thinking about packages, say in npm world, I still wonder about trust within nested dependencies. New users might also be unfamiliar. Any thoughts or any guidances?