Bakdörr i xz/liblzma resulterade i bakdörr i sshd

Permalänk
Medlem

Bakdörr i xz/liblzma resulterade i bakdörr i sshd

Eftersom detta inte verkar ha postats här än passar jag på att göra det. En bakdörr upptäcktes igår (29/3) i liblzma i paketet xz, en lib som länkas in i OpenSSH på många Linux-distributioner för integration med systemd.

https://www.openwall.com/lists/oss-security/2024/03/29/4

Detta ser ut att vara ett resultat av en infiltration av projektet där en skadlig aktör i princip låtsades hjälpa till att underhålla koden och i praktiken blev en co-maintainer av projektet. Som det verkar var detta en del av en plan som började sättas i verket redan 2021.

En bra genomgång:

https://boehs.org/node/everything-i-know-about-the-xz-backdoo...

En ytterligare sammanfattning:

https://lcamtuf.substack.com/p/technologist-vs-spy-the-xz-bac...

OBS: Ytterst få Vissa distributioner hann integrera denna nya version i sina paket innan detta upptäcktes så sannolikheten att folk har bakdörren på sina system är låg, men personerna bakom jobbade aktivt för att skynda på detta.

EDIT: Debian unstable och testing samt Fedora 40 och 41 hann vad jag förstår börja skicka ut dessa paket. Kan säkert finnas andra också.

Visa signatur

Antec P280 | Corsair RM750x | ASUS ROG Crosshair VIII Dark Hero | Ryzen 9 5900X | G.Skill Trident Z RGB 3200MHz CL14 @3600MHz CL16 2x16GB | ASUS RTX 3080 TUF OC | WD SN850 1TB | Samsung 970 Pro 1TB | Samsung 860 Pro 1TB | Samsung 850 Pro 1TB | Samsung PM863a 3.84TB | Sound Blaster Z | 2x ASUS PG279Q

Permalänk

Bakdörr i SSH servern upptäckt

Tänkte att det är värt att nämna här att SSH (den vanliga fjärrinloggningen) fått en bakdörr på många system via en ondskefull xz (kompressionsprogram) utvecklare.

https://www.openwall.com/lists/oss-security/2024/03/29/4

https://archlinux.org/news/the-xz-package-has-been-backdoored...
https://lists.debian.org/debian-security-announce/2024/msg000...
https://www.redhat.com/en/blog/urgent-security-alert-fedora-4...

Trådar sammanfogade. // MOD
Permalänk
Medlem

Inte för att det behövs fler bevis, men personen som commitade bakdörren ändrade även policyn för hur man rapporterar säkerhetshål i projektet härom dagen, SECURITY.md bad om att uteslutande rapportera till en mailaddress, förmodligen var det bara han som hade kontroll över den dessutom.

Personen har också bidragit kod till libarchive som är ett annat komprimeringsprojekt, får se om det dyker upp fler oegentligheter.

Obfuskeringen var väldigt snygg gjord också, så frågan är om det bara är han som enskild person eller om det ligger en grupp/stat bakom detta.

Permalänk
Medlem

Huj, tack för headsup, blir att uppdatera ett par maskiner när man kommer hem!

Visa signatur

Intel i7 10700KF (Noctua NH-D15) | Asus RADEON RX 7900 XTX TUF | 32 GB DDR4 HyperX Fury | Corsair RM1000X | Fractal Design R3 | Arch Linux, Win11

Permalänk
Medlem

Ytterst välgjort om jag fattar det rätt. Flera års förberedelser, där man bland annat innan exploiten kommit på plats begärt ändringar i googles fuzzer för att den inte ska upptäcka problemet. Koden på github är tydligen Ok, men tar-bollarna som distributioner laddar ner för sina byggen har en extra rad, där man injecerar för mig totalt obegriplig kod i bygget via en xz-komprimerad testfil. OpenSSH i sig är felfritt, men drabbas eftersom distributioner patchar OpenSSH och patchar in xz för att fungera med systemd, så inget OpenSSH-folket kunde förväntas hitta i sina tester. Man verkar medvetet ha väntat tills Ubuntus merge-fönster har varit nära stängning för att få in det där.

Skrivet av blunden:

OBS: Ytterst få distributioner hann integrera denna nya version i sina paket innan detta upptäcktes så sannolikheten att folk har bakdörren på sina system är låg, men personerna bakom jobbade aktivt för att skynda på detta.

Tyvärr har det om jag förstår det rätt funnits i Debian testing ett (kort) tag två månader. Det är ju rätt välanvänt.

Permalänk
Medlem

Designerad CVE-2024-3094. Här finns en preliminär återgivelse om hur skadlig kod kunde ha skickats till valfritt system. Följderna hade varit oöverskådliga.
https://bsky.app/profile/filippo.abyssdomain.expert/post/3kow...

Citat:

Filippo Valsorda @filippo.abyssdomain.expert
I'm watching some folks reverse engineer the xz backdoor, sharing some *preliminary* analysis with permission.

The hooked RSA_public_decrypt verifies a signature on the server's host key by a fixed Ed448 key, and then passes a payload to system().
It's RCE, not auth bypass, and gated/unreplayable.

Citat:

Filippo Valsorda @filippo.abyssdomain.expert 1d
This might be the best executed supply chain attack we've seen described in the open, and it's a nightmare scenario: malicious, competent, authorized upstream in a widely used library.

Looks like this got caught by chance. Wonder how long it would have taken otherwise.

Citat:

fellipec.bsky.social @fellipec.bsky.social 1h
Beloved, I'm so glad this was caught. Would be a nightmare if it went into production

Citat:

Peter E. AKA Say10 @pelsner.bsky.social 3h
Yup. Only got caught because someone noticed ssh running slow

Den här prestandaförlusten var deras misstag, de hade kunnat göra den än mer osynlig.

Permalänk
Medlem
Skrivet av KAD:

Ytterst välgjort om jag fattar det rätt. Flera års förberedelser, där man bland annat innan exploiten kommit på plats begärt ändringar i googles fuzzer för att den inte ska upptäcka problemet. Koden på github är tydligen Ok, men tar-bollarna som distributioner laddar ner för sina byggen har en extra rad, där man injecerar för mig totalt obegriplig kod i bygget via en xz-komprimerad testfil. OpenSSH i sig är felfritt, men drabbas eftersom distributioner patchar OpenSSH och patchar in xz för att fungera med systemd, så inget OpenSSH-folket kunde förväntas hitta i sina tester. Man verkar medvetet ha väntat tills Ubuntus merge-fönster har varit nära stängning för att få in det där.

Tyvärr har det om jag förstår det rätt funnits i Debian testing ett (kort) tag två månader. Det är ju rätt välanvänt.

Ja, det ser definitivt ut som att de jobbat på detta sedan åtminstone 2021.

Ja, jag såg senare att paket med bakdörren faktiskt hunnit ut i vissa distributioner. Justerade första inlägget ifall folk inte läser hela tråden.

Visa signatur

Antec P280 | Corsair RM750x | ASUS ROG Crosshair VIII Dark Hero | Ryzen 9 5900X | G.Skill Trident Z RGB 3200MHz CL14 @3600MHz CL16 2x16GB | ASUS RTX 3080 TUF OC | WD SN850 1TB | Samsung 970 Pro 1TB | Samsung 860 Pro 1TB | Samsung 850 Pro 1TB | Samsung PM863a 3.84TB | Sound Blaster Z | 2x ASUS PG279Q

Permalänk
Medlem

Bra att du lyfter detta @blunden
Själv fick jag lite minnen ifrån när man rattade OpenBSD i början på 2000-talet och SSHD innehöll en "remote exploit", så jag har gått igenom systemen jag har hand om. Och jag tror inte jag varit drabbad, men ska ta en extra koll under dagen.
Frågan är om det ens är värt att tipsa Sweclockers-redaktionen om detta eller om det bara är bumpade artiklar och quiz som gäller.

Visa signatur

Marantz NR1605, Rotel RB1090, Ino Audio piPs
SMSL SP200 THX Achromatic Audio Amplifier 888, SMSL M400, Audio-Gd NFB-11 (2015), Objective2+ODAC RevB, Audeze LCD-2 Rosewood, Monoprice M1060, ATH-M40x, Sennheiser HD660S, DROP X KOSS ESP/95X, Koss KPH30i, DROP X HiFiMan HE4XX

Permalänk
Hedersmedlem

Vad jag minns är processen som forkas för inloggning normalt sandboxad och laddar inget externt före autentisering, av just såna här anledningar. Är det det som linuxfolket patchat sig runt, eller när görs ropet till systemd och varför?

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem
Skrivet av backspace:

Bra att du lyfter detta @blunden
Själv fick jag lite minnen ifrån när man rattade OpenBSD i början på 2000-talet och SSHD innehöll en "remote exploit", så jag har gått igenom systemen jag har hand om. Och jag tror inte jag varit drabbad, men ska ta en extra koll under dagen.
Frågan är om det ens är värt att tipsa Sweclockers-redaktionen om detta eller om det bara är bumpade artiklar och quiz som gäller.

Jag har tänkt samma tanke, men valde att inte tipsa. Det är en Linux-nyhet och jag ser inte hur den passar in i det nuvarande flödet när jag kollade. Som du säger, mycket trivialt material nuförtiden. Denna sårbarhet kunde slunkit in i vartenda system som kör Linux eller BSD; som routrar, smartswitchar, telefoner och stora servrar (Tieto et.al.). Idag var den riktad mot sshd på systemd-system, men vem vet hur det sett ut imorgon, när grunden blivit lagd överallt. Små obskyra ändringar i XZ kunde breddat attackvektorn väsentligt i framtiden.

Skrivet av Aphex:

Vad jag minns är processen som forkas för inloggning normalt sandboxad och laddar inget externt före autentisering, av just såna här anledningar. Är det det som linuxfolket patchat sig runt, eller när görs ropet till systemd och varför?

Tolkar det som att ett extra steg görs före nyckelverifieringen, alltså före loginsekvensen. Om nyckeln passar i hackerlåset så avkodas lasten som skickas till system(). Om nyckeln inte passar så fortsätter koden enligt den vanliga kodvägen (som förmodligen skapar sandboxen). Det låter enkelt, men allt har gömts i flera lager och det finns ingen möjlighet att skanna systemet från nätverket för att se om sårbarheten finns. Bland annat så byts två funktioner kopplade till IFUNC ut.

Den här användaren "Jia Tan (JiaT75)" har gjort 750 ändringar i XZ-koden under de här två åren. Diskussionen nu är om man helt enkelt ska backa allt, eller gå igenom och verifiera varje förändring han gjort. Det är lite olyckligt då xz behöver få in en del nyare modernare funktioner som nyttjar dagens system bättre. Man kan sammanfatta det som att xz kan tappa två års utveckling från att redan tidigare ha varit i bakvattnet.

Branchen har reagerat unisont och snabbt; i princip allt som den här personen (och flera runt omkring) rört vid har effektivt tagits ned och backats till kända marker. Bl.a. så blev även den tidigare administratören av XZ helt avstängd när utredningen tog fart.

Lade till text från "JiaT75" och framåt.
Permalänk
Medlem
Skrivet av Aphex:

Vad jag minns är processen som forkas för inloggning normalt sandboxad och laddar inget externt före autentisering, av just såna här anledningar. Är det det som linuxfolket patchat sig runt, eller när görs ropet till systemd och varför?

Detta var vad upptäckaren såg; ett ypperligt sinne för detaljer. Med sitt ansvar för sina system så vägrade han att släppa in den nya utgåvan på sina produktionssystem innan han förstod vad denna halva sekund berodde på.

# time ssh nonexistant@...alhost before: nonexistant@...alhost: Permission denied (publickey). real 0m0.299s user 0m0.202s sys 0m0.006s after: nonexistant@...alhost: Permission denied (publickey). real 0m0.807s user 0m0.202s sys 0m0.006s openssh does not directly use liblzma. However debian and several other distributions patch openssh to support systemd notification, and libsystemd does depend on lzma.

Permalänk
Hedersmedlem
Skrivet av mc68000:

systemd notification

Det var mer den biten jag undrade över, vilket syfte fyller det att lägga till den här funktionaliteten till sshd, i vilket stadie av inloggningen och med vilka privilegier görs anropen?

Och, vilka fler program har man potentiellt saboterat på det här sättet, för att de ska stödja systemd-notify?

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Den här bakdörren är endast åtkomlig om man har ssh öppet ut mot internet?

Visa signatur

ASUS ROG STRIX B450-F GAMING - AMD Ryzen 5 3600 3.6 GHz 35MB - Cooler Master - Hyper 212 Black Edition - Corsair 16GB (2x8GB) DDR4 3200Mhz CL16 Vengeance LPX - Kingston A2000 500GB M.2 NVMe - Fractal Design Define C Svart - 2 X Noctua NF-P14s redux-1200 140mm PWM - Corsair RM650X 650W v2 - ASUS GeForce GTX 1060 6GB DUAL OC - Raijintek Morpheus II Heatpipe VGA Cooler - 2 X Noctua NF-P12 120mm PWM - OS Debian 10 Stable

Permalänk
Medlem
Skrivet av Aphex:

Det var mer den biten jag undrade över, vilket syfte fyller det att lägga till den här funktionaliteten till sshd, i vilket stadie av inloggningen och med vilka privilegier görs anropen?

Och, vilka fler program har man potentiellt saboterat på det här sättet, för att de ska stödja systemd-notify?

Jag bygger mina system med "-systemd" och kör OpenRC istället, så har ingen kännedom om vilka "finesser" som systemd behöver/erbjuder. Det läskiga är att ingen funktionalitet har lagts till i SSHD, deras kod är sund och opåverkad. Bakdörren kommer in helt via xz-biblioteken (liblzma). Faktum är att attackvektorn kunde varit bredare redan idag, men man har infört en rad begränsningar när bakdörren skapas, förmodligen för att minimera upptäckt. (Man försöker bl.a. att inte aktivera bakdörren om koden körs i debug-läge!)

Även detta stycke kommer från första länken i denna tråd. (Ursäkta alla Linux-specifik jargong.)

Observed requirements for the exploit: a) TERM environment variable is not set b) argv[0] needs to be /usr/sbin/sshd c) LD_DEBUG, LD_PROFILE are not set d) LANG needs to be set e) Some debugging environments, like rr, appear to be detected. Plain gdb appears to be detected in some situations, but not others

Det finns xz-kod i linux-kärnan också som aktiveras om man konfigurerar för det, men denna kod har de inte påverkat. Som brukligt i Linux så kan man själv välja mellan ett antal komprimeringsalgoritmer.

Permalänk
Medlem

Detta hade verkligen varit en suverän nyhetsartikel.

Måste ändå säga är det är ett rätt imponerande arbete. Tur att de hittade det i tid iallafall.

Vilka system blir påverkade av detta? Det det de flesta distros eller bara specifika? Brandväggar som pfsense mm?

Visa signatur

Laptop Workstation PC Specialist || Intel 10875H - 250mv & Liquid Metal || Nvidia RTX 2070 883mv @ 1935MHz & Liquid Metal ||64GB Ram || Samsung 970 EVO 2TB + 512GB OEM || 1TB & 512GB External SSD + 2.5TB NAS
Lyssna gärna på mitt band The Mulak Mind
Citera gärna om du vill ha svar!

Permalänk
Medlem
Skrivet av r80x:

Vilka system blir påverkade av detta? Det det de flesta distros eller bara specifika? Brandväggar som pfsense mm?

På länken medan finns en lista på troliga distros som påverkats.

https://xeiaso.net/notes/2024/xz-vuln/

Nej, BSD-baserade distributioner likt pfSense, OPNsense, etc. lär inte vara påverkade eftersom OpenSSH som standard inte länkas mot detta lib, det är enbart ändringar för integration med systemd som gör att detta sker. Har åtminstone inte sett någon annan patch som råkar skapa beroende på liblzma. Bakdörren är också enbart riktad mot OpenSSH (med systemd-patcharna) såvitt jag vet.

Visa signatur

Antec P280 | Corsair RM750x | ASUS ROG Crosshair VIII Dark Hero | Ryzen 9 5900X | G.Skill Trident Z RGB 3200MHz CL14 @3600MHz CL16 2x16GB | ASUS RTX 3080 TUF OC | WD SN850 1TB | Samsung 970 Pro 1TB | Samsung 860 Pro 1TB | Samsung 850 Pro 1TB | Samsung PM863a 3.84TB | Sound Blaster Z | 2x ASUS PG279Q

Permalänk
Medlem
Skrivet av blunden:

På länken medan finns en lista på troliga distros som påverkats.

https://xeiaso.net/notes/2024/xz-vuln/

Nej, BSD-baserade distributioner likt pfSense, OPNsense, etc. lär inte vara påverkade eftersom OpenSSH som standard inte länkas mot detta lib, det är enbart ändringar för integration med systemd som gör att detta sker. Har åtminstone inte sett någon annan patch som råkar skapa beroende på liblzma. Bakdörren är också enbart riktad mot OpenSSH (med systemd-patcharna) såvitt jag vet.

Arch 5.6.1-2 är en patchad version btw, så kör man arch kan man uppgradera till den. Oklart om bakdörren var aktiv i Arch dock.

Jag hoppas dock att alla program som använder xz byter till zstd eller så nu, xz bör inte tas i med tång.

Permalänk
Medlem
Skrivet av dlq84:

Arch 5.6.1-2 är en patchad version btw, så kör man arch kan man uppgradera till den. Oklart om bakdörren var aktiv i Arch dock.

Arch var inte drabbad eftersom de inte länkar sshd mot liblzma, och samma gäller även t.ex. Gentoo och OpenMandriva. De flesta distributioner på den listan är nog i själva verket inte drabbade. Men de rekommenderar förstås ändå att man uppgraderar för säkerhets skull.

Permalänk
Hedersmedlem
Skrivet av perost:

Arch var inte drabbad eftersom de inte länkar sshd mot liblzma, och samma gäller även t.ex. Gentoo och OpenMandriva. De flesta distributioner på den listan är nog i själva verket inte drabbade. Men de rekommenderar förstås ändå att man uppgraderar för säkerhets skull.

Exploiten hänger på att man länkar mot libsystemd som i sin tur länkar mot liblzma. Läste just på hackaday att

Citat:

Many Linux distros patch sshd to add systemd features, and libsystemd pulls the liblzma library. That means theliblzma initialization code gets run when sshd starts.

och

Citat:

The backdoor was added to initialization code in liblzma (which runs whenever the dynamic linker loads that library). So that malicious code runs before sshd starts executing, and manipulates the dynamic linker so that it will do something (which is still being analyzed AFAIK) when some specific functions are called by the sshd executable.

Föreslår tjära, fjädrar och en särskilt dum strut till den som skrev den patchen.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem
Skrivet av Aphex:

Exploiten hänger på att man länkar mot libsystemd som i sin tur länkar mot liblzma.

Ja, det var det jag menade, det är bara vissa distributioner som patchar openssh för systemd-notify.

Permalänk
Medlem
Skrivet av blunden:

Ja, det ser definitivt ut som att de jobbat på detta sedan åtminstone 2021.

Ja, jag såg senare att paket med bakdörren faktiskt hunnit ut i vissa distributioner. Justerade första inlägget ifall folk inte läser hela tråden.

Lite väl long con för någon random med tanke på hur länge det pågått. Inte för att vara alltför konspiratorisk men känns lite som någon större gruppering eller (diktatur)statsgrupp ligger bakom.

Bra att det upptäckts och får hoppas man börjar granska mer kod nogrannare. Toppen av isberget.

Visa signatur

Huvuddator: 7800X3D, 2x16GB G.Skill Flare X5 6000MHz CL30, Asus B650E-F, KFA2 RTX 4090 SG, 6TB NVMe/SATA SSD, 42" LG OLED C3 Evo
Spellaptop: Asus ROG Strix G15, 6800H, 16GB, RTX 3070Ti, 1TB NVMe
Övrigt: Dell XPS 13 modell 9310, Apple Macbook Air M1 8GB samt Samsung Galaxy S7 FE, Steam Deck
Dammsamlare: PS5, Switch och Xbox One X
Folda för Sweclockers! https://www.sweclockers.com/forum/trad/1348460-faq-kom-igang-...

Permalänk
Medlem

Jisses... antingen har man rejäl horn i sidan till OSS och har psykopatiska drag för att ha uthållighet att under > 2 års tid manipulera koden och lirka med människorna som håller i detta att gå den vägen man tänkt sig eller så är man betald för den här typen av angrepp och det var dessutom välplanerat.

Den eller de som är bakom detta är förmodligen inte så glada att det avslöjats i förtid innan det är ute i det vilda en tid bland alla Linux-distrubitioner pga. misstag i koden som käkade CPU-resurser och av någon som är observant och undrade varför en cli-kommando tog en halvsekund längre än förväntat...

Detta är på nära samma nivå som NSA:s Dual_EC_DRBG hack i försök att kunna läsa av HTTPS: trafik i realtid, men förmodligen driven av en annan stor aktör.

Nu är jag ingen fan av Microsoft men det är hatten av för de som jobbar där och faktiskt hittat ganska intrikata och väldolda bakdörrar ett flertal gången den senaste åren

Permalänk
Medlem

En bra överblick utav händelseförloppet:

Ytterligare läsning för den som vill fördjupa sig rent tekniskt:

https://gynvael.coldwind.pl/?lang=en&id=782

https://gist.github.com/smx-smx/a6112d54777845d389bd7126d6e9f504

Permalänk
Skrivet av Eazy:

Det här bakdörren är endast åtkomlig om man har ssh öppet ut mot internet?

Nja, det kan användas lokalt också.

Permalänk
Medlem

Bakdörren har nu blivit reverse engineerad:
https://github.com/amlweems/xzbot

Permalänk
Medlem
Permalänk
Permalänk
Medlem

Blasty på Twitter har arbetat vidare och reversat tillräckligt utav implantatet för att implementera en egen(SSH) klient som nyttjar det.*
https://github.com/blasty/JiaTansSSHAgent

*Dock inte med hotaktörens privata nyckel, givetvis- så denna går inte att nyttja på bakdörrade system i det vilda. Men man kan implementera sin egen nyckel och testa för att bygga detektioner t.ex.