smarken blog

Digital Sovrignty, Privacy, EU Law & Legislation, IT, Linux

Sikkerhed

Indlæg om samfundssikkerhed, IT sikkerhed m.m.

PHP-sårbarheden: Det værste scenarie for nettets infrastruktur

Denne PHP-bug er uironisk set det værste tænkelige scenarie. Det føles, som om der hver dag kommer en ny sårbarhed. Og folkens, denne PHP-bug er sandelig det værste scenarie for selve infrastrukturen på nettet, som vi kender det.

Indledning og et mønster med ferier

Jeg vil forresten fremhæve, at hver gang jeg tager på ferie på den ene eller anden måde, ja selv bare når jeg forlader hjemmet i en længere periode ... jeg er lige nu i Las Vegas til SentinelOne's OneCon, og bogstaveligt talt kom denne bug ud om mandagen. Rygtet begyndte at spredes, lige da jeg landede. Så måske er der et mønster. Måske burde jeg ikke forlade mit hjem. Nå, ikke vigtigt.

Hvad der faktisk skete

Tidligere på ugen flød der nogle rygter om, at nogen havde "poppet" PHP. Og ikke som i at poppe et PHP-plugin eller en sårbarhed i phpMyAdmin. Nej, jeg taler om en sårbarhed i selve PHP-runtime-miljøet.

Det er vigtigt at forstå, at selvom PHP i sig selv er et sprog, der renderer ting på nettet ... du hoster en hjemmeside, og hjemmesiden har PHP i backenden ... så er der i sidste ende kode, der skal køre, som ikke bare renderer PHP'en, men som også taler over netværket med requesten og parser data ud af den request, så PHP-daemonen kan gøre ting. Hvis der er sårbarheder i den måde, PHP parser og håndterer requesten på, kan det føre til fjern-RCE, remote code execution, og det er præcis, hvad disse to separate sårbarheder muliggør. Det er virkelig vanvittigt.

Forskerne bag fundet

Der har været rigtig mange mennesker involveret i dette. En række virksomheder er gået sammen om at få det til at ske. Men jeg tror, at den primære finder af denne bug er LCFR, en "zeroday-connoisseur", som de selv skriver på Twitter. Og dette er en sårbarhed. Dette er en video af dem, der udnytter sårbarheden, med dit klassiske anime-pige-danse-agtige noget. Men TL;DR her er, at det er dem, der kaster exploiten af sted.

Den bedste write-up, jeg har set om dette, er write-uppen fra kf.io. Jeg mener, at hackeren, der fandt den, LCFR, er tilknyttet kf. Jeg linker til deres Twitter og URL'en til write-uppen i beskrivelsen herunder. Igen, jeg vil ikke læse write-uppen op. Jeg vil mere opsummere den. Selvfølgelig: Gå ind på forskerens Twitter-profil, følg dem, læs write-uppen selv. Det er rigtig, rigtig godt stof. Meget teknisk dybdegående. Så hvis du er til den slags, så læs den.

Hvorfor dette er så stort en sag

Men lad mig gennemgå, hvorfor dette er så stor en sag. Sårbarheden er i PHP, som står for "PHP: Hypertext Preprocessor". Ja, det er et rekursivt backronym. Den findes fra 5.4.0 og op til ... jeg tror, den seneste patch, der fikser dette, er 8.1.something. Okay, 5.4.0 blev udgivet i juli 2004, hvilket betyder, at denne bug har ligget dormant i over 22 år nu.

Hvorfor PHP? Hvorfor betyder det noget?

Hvem gider dog PHP? Bruger vi ikke alle React og Node i backenden nu? Er det ikke den aktuelle meta i webudviklingsverdenen? Igen, jeg er ikke webudvikler. Jeg husker, da jeg lærte at kode, kørte jeg LAMP-stack og WAMP-stack på mine computere. Jeg havde en Ubuntu 8.04 dengang, hvor de sendte dig cd'en, og den lugtede af pickles direkte ud af posen, eller hvad det nu var. Jeg kørte LAMP. Så det var sådan, jeg lærte at kode. Jeg lærte at lave session-autentifikation med PHP. Min første login-skærm nogensinde var i PHP. Okay. PHP ligger mig virkelig nært.

PHP er vigtigt, fordi det driver alle disse stacks: Laravel, Nextcloud, phpMyAdmin, Joomla, Drupal, og alle WordPress-platforme er PHP-backends. Hvilket betyder, at hvis der er en bug i selve PHP-sproget, i daemonen, så rammer det alle disse platforme. Det er som guldstandarden for en software supply chain-sårbarhed, hvor noget i din stack, som du ikke kontrollerer, har en bug.

Selve buggen: use-after-free

Buggen i question er noget, man kalder en use-after-free. I et manuelt memory-styret sprog har du selv ansvaret for at håndtere hukommelsen. Du allokerer, du frigør hukommelse, og hvis du bruger hukommelse efter, at den er frigivet, kan der opstå rigtig mange dårlige bivirkninger, hvor andre dele af programmet kan bruge den frigjorte hukommelse på utilsigtede måder. Igen, kf-rapporten forklarer det langt bedre, end jeg vil. Jeg giver en opsummering på højt niveau.

De fandt én bug ved at få PHP's memory-allokator til at fejle via en POST-request. Den interne hash-tabel fik en fejl. Dette out-of-memory-problem eksisterede kun i PHP 7.3 og opefter. De skrev en skill.md-fil, der prøver at opsummere mønsteret, de så i 7.3. Og ret hurtigt fandt LLM'en en anden version af samme mønster et andet sted i PHP. Så du har måske set denne "session upload progress" fløje rundt i INI-fil-sammenhænge. Det er den del af PHP, der håndterer uploads fra request-bodyen. Du kender det med PHP-session-ID-cookien, der forbinder dine data til data på serverens backend, ikke? Sådan bliver det hele håndteret.

I sidste ende gælder det samme mønster: Få PHP til at gøre noget, få det til at fejle midt i det, og fordi det fejlede midt i processen, sker der en fejlagtig oprydning, hvilket fører til en use-after-free. Samme proces var gældende i en anden del af PHP, i en ældre version helt tilbage til 5.3, i fil-upload-processen. Så igen, du har sikkert set Twitter-snak om denne session upload progress-funktion. Det er en funktion, der tillader dig at uploade filer tilknyttet en session. Og alt denne kode kører, før dit PHP-script overhovedet kører, før din kode overhovedet kører. Da jeg så denne exploit, tænkte jeg: "Åh, dette betyder sikkert kun noget, hvis du har en sessionsvariabel, der afhænger af en uploadet fil." Nej. Alt dette bliver kørt, før PHP'en overhovedet kører.

Sådan fungerer det

Der er to requests. Den første er, at du initialiserer en session, hvor du udfører et "file start", hvilket betyder, at du uploader en fil. Mens dette sker, er der globals i PHP, når du etablerer en session. Disse globals peger ind i requesten. Senere fejler multipart-parsingen på en måde, der er fatal, men som ikke crasher, hvilket betyder, at du enten har et parse-problem ... men jeg tror, at de i dette eksempel bruger out-of-memory-mønsteret fra før, hvor du kan få PHP's memory-allokator til at fejle og dermed få den til at bakke ud. Men den bakker ikke helt ud, fordi fil-uploaden ikke er færdig. Den lukker ikke sessionen helt ned. Hvad der faktisk sker, er, at sessionen frigives, men session-globalen stadig eksisterer. I en anden request fortsætter du fil-uploaden med endnu en multipart-formular. Du afslutter fil-uploaden, og det, der sker her, er, at den læser og derefter destruerer den frigjorte sessionsværdi. Ved at destruerer menes, at den skriver en værdi der. Så det her er use-after-free'en.

Kat-og-hund-eksemplet på use-after-free

Mange spørger mig, hvordan en use-after-free kan føre til kodeeksekvering. Okay, jeg har det eksempel, jeg bruger i mange videoer. Det er mit kat-hund-eksempel. Forestil dig, at du har to strukturer. Hvis du ikke er programmør, er en struct bogstaveligt talt bare en sammenkobling af to datatyper. I dette eksempel har du navnet på et dyr og en funktions-pointer til, hvordan det taler. Så det er en kat og en hund.

Bemærk, at det faktisk er de samme variabler i en anden struktur for "woof" og navnevariablen i dog-strukturen, men de ligger på en anden placering. Hvis du lagde disse to variabler oven på hinanden, ville speak-funktionen for hunden ligge oven på kattens navn, og kattens speak-funktion oven på hundens navn. I use-after-free-scenariet, hvad der sker, er, at du har en pointer, der peger på den samme hukommelsesblok. Den peger på samme sted, hvor de samme data findes, men den behandler dataene på to forskellige måder. Den behandler dem som en kat og en hund. Så en skrivning til navnevariablen i kat-scenariet kan bruges som speak-funktions-pointeren i hund-scenariet. Selvfølgelig er det en ekstremt forenklet version af det exploit-mønster, vi taler om. Dette er bogstaveligt talt funktions-pointere. At opnå RCE via en use-after-free ind i vilkårlig læsning/skrivning er langt mere kompliceret. Men det er den generelle idé om, hvordan en use-after-free gør sit.

Sponsorafsnittet

Og lige hurtigt, før vi fortsætter, vil jeg tale om dagens videosponsor. Folkens, det er mig. Jeg er sponsoren. Hvis du er interesseret i noget af det arbejde, jeg laver, hvis du kan lide mine videoer, så gør mig en tjeneste og tjek min podcast ud. Jeg har en podcast med Matt Johansson, nemlig Vulnerable U. Den er skide god. Vi har det fantastisk. Den hedder The Lowdown. Vi bogstaveligt talt bare snakker løs som her i en time ad gangen om sårbarheder. Vi hygger os. Der er også mange gode gæster på den podcast. Så hvis du er interesseret i mere langformat af mig og ham, der snakker løs, så tjek den ud. Og så har jeg et nyhedsbrev, der hedder The Most Significant Bit. Links til begge dele ligger i beskrivelsen herunder. Begge er gratis. Så kom nu, gratis stof fra din dreng. Slå til. Og sidst: Hvis du vil lære mere om hacking og kodning, så har Low Level Academy store ændringer på vej i 2027. Så giv det et kig også. Det var det. Se lige det. Det var ikke eens... det var 48 sekunders sponsorindslag. Wow.

Embargoen, patchen og ... er den overhovedet komplet?

Nu til det rigtig krydrede. Alt dette skete mere eller mindre i det skjulte. Der var angiveligt en lille gruppe mennesker, der kendte til buggen. Der blev arbejdet på at få en patch klar hos PHP, før det blev offentligt. Det var under embargo. Så de holdt fast i patchen, indtil det gik ud til offentligheden. PHP udgav patchen, og alt var godt.

I mellemtiden var det, der skete, at folk forsøgte at bruge LLM'er til at finde sårbarhederne. Det betyder, at folk i masser af oplag kastede formodentlig GLM 5.3, DeepSeek 4.1, et-eller-andet, jeg ved det ikke, måske en Gemini-model, altså alle frontier-modellerne, mod PHP-kodebasen. Patchen udkom, og igen, jeg prøver ikke at spreade FUD eller misinformation. Jeg læser bare bogstaveligt talt det, jeg ser på Twitter, hvilket nok ER misinformation. Jeg ved det ikke. Nå, men dette er nogen, der rapporterer, at exploiten eller i hvert fald den sårbarhed, der er blevet fremhævet ... det er dem, der kompilerer PHP med ASAN og derefter kører en PoC, der rammer den kodevej, hvor dette sker. Der er stadig en ASAN-violation. Der er en double free, hvilket antyder, at sårbarheden, der tales om i kfs write-up, stadig er til stede i 8.1.2-patchen. Desuden siger en anden højt respekteret forsker, Nicholas Cassus (eller hvad han nu hedder), at den nye 8.1.2-security patch er ufuldstændig og kræver yderligere validering. Det er åbenlyst en slags AI-genereret noget, men de fandt jo også buggen med AI, så jeg er ikke sikker på, hvor meget det betyder.

Hvorfor kommer der nu så mange bugs, og hvorfor er så mange af dem use-after-free?

Men i sidste ende: Hvorfor kommer der så mange bugs nu, og hvorfor er så mange af dem use-after-free? Jeg har arbejdet hos mange virksomheder. Jeg har skrevet mange fuzzers. Fuzzers er de værktøjer, forskere bruger til at finde det, der kaldes spatiale, for det meste memory-corruption-sårbarheder. Der er en buffer overflow, der er en integer underflow, der fører til en buffer overflow, eller en out-of-bounds read eller write. Disse bugs har i lang tid været meget lette at finde med fuzzers, fordi fuzzers sprænger hele det træ, som programmet kan eksekvere, og finder alle edge cases i det. Problemet med en use-after-free er, at du skal have det, der kaldes en temporal bug: en bug, hvor flere tilstande opnås i programmets eksekvering. De opsummerer det i deres skill.md-fil, de giver LLM'en: Her er de to invarianter, der skal gælde for, at en use-after-free ikke eksisterer. Gå find, hvor denne invariant brydes. Vi har disse to forskellige tilstande, der kan opstå, og én af dem er en fatal fejl under fallibelt arbejde. Gå find den. Dette er ikke noget, fuzzers kan finde, fordi fuzzers tilfældigt bevæger sig gennem kodebasen og leder efter coverage. De prøver at få mere og mere coverage på grafen over kodebasen. De er ikke optimeret til at skabe to forskellige temporale tilstande i programmet, hvor den ene er et fejlcases, og den ene ikke er. LLM'en er rigtig god til netop det. Du kan specificere: Kan nogen af disse to tilstande eksistere? Og, afhængigt af hallucinationer, kan den finde dem meget hurtigt. Så vi vil begynde at se mange flere af disse bugs falde ned fra himlen. Og jeg vil fremhæve, at vi lige har haft hele verden kaste deres LLM'er mod PHP. Det er sandsynligt, at flere pre-auth RCE'er vil dukke op af ingenting. Så bare en advarsel til klassen. Dette er måske ikke enden på det.

Ville Rust fikse det?

Og ville Rust fikse dette? Faktisk, ja. Jeg mener, jeg advocater ikke for, at PHP-teamet skal omskrive hele PHP i Rust, for det giver i sig selv problemer set fra et code drift-standpunkt. Men dette er jo en use-after-free. Det er bogstaveligt talt et reference-counting-problem på en global pointer, der bruges på to forskellige måder, den ene efter at være blevet frigivet. Og det er netop det, Rust praler af: Vi gør borrow checkeren på compile-tid, så det kan ikke ske. Okay. Åh mand, skræmmende tider.

Ugen der i øvrigt var skrækkens uge

Dette sker samme uge, som jeg ankom hertil ... jeg kom for to dage siden, og dette droppede: En indisk certificate authority, e-Mudhra (undskyld, hvis jeg udtaler det forkert), havde otte certifikater, hvoraf den private nøgle til én af dem var lækket, så en masse certs blev invalideret. Og mens jeg optager dette nu, tror jeg bogstaveligt talt, at lige præcis nu er der droppet en GitLab-CVSS 10. Så det ER åbenbart vuln-sæson, folkens. Forbered jer, patch jeres bokse, tryk på like-knappen. Ses, farvel.


Transcriptet er organiseret i sektioner med overskrifter, og alle sætninger fra originalen er bevaret og oversat til dansk.


Transcript

This PHP bug is unironically the worst case scenario. It feels like every day there is a new vulnerability that comes out. And guys, this PHP1 is truly the worst case scenario for like the infrastructure of the web as we know it. I want to highlight, by the way, every time I go on vacation in some form or fashion and even just leaving my home for a long period of time, I'm currently in Las Vegas for Sentinel 1's uh OneCon and literally this bug came out like on Monday. Like the rumor started to happen when I landed. So maybe there's a pattern. Maybe I shouldn't leave my house. Anyway, not important. Earlier this week, there were some rumors floating around that somebody had popped PHP and not like popped a PHP plugin or popped like a vulnerability in PHP MyAdmin. No, I'm talking like a vulnerability in the PHP runtime. It's important to understand that like while PHP is a language in and of itself that renders things on the web, right? You host a website and the website has PHP in the back end. Ultimately, there is code that has to run that not only renders the PHP, but also talks over the network to the request and parses data out of that request to make the PHP Damon do things. If there are vulnerabilities in the way that PHP parses and handles the request, that can lead to remote unauthor rce, remote code execution, which is exactly what these two two separate vulnerabilities enable. It's truly insane. Now, there are a lot of people that worked on this. There's a variety of companies that got together that made this happen. But I think the primary finder of this bug is LCFR, a zeroday connoisseur, they say on Twitter, and this is a vulnerability. This is a video of them exploiting the vulnerability with your traditional, you know, anime girl dancing kind of thing. Uh, but the TLDDR here is this is them throwing the exploit. So, the best write up that I've seen on this is the the Khif.io write up. I believe the hacker that found this LCFR is associated with Khif. I'll link their Twitter and the URL for this write up in in the description down below. Again, I'm not going to read this right up. I'm going to kind of summarize it. Obviously, go to the Twitter profile of the researcher, go follow them, go read the write up on your own. It's very, very good stuff. Very technically in-depth. So, if you're into that, read it. Um, but let me go through like why this is such a big deal. This vulnerability is in PHP, which is the PHP hypertext prep-processor. Yes, it is a recursive backronym from 5.4.0 and up to like I think the most recent patch that fixes this is 8125. Okay. 540 was released in July of 2004, which means that this bug has sat dormant for over 22 years now. Why PHP? Why does this matter? Who gives a [ __ ] about PHP? Aren't we all using React and Node on the back end now? Isn't this the current meta of the web development world? Again, I'm not a web development guy. I remember when I was learning to code, I was doing LAMP stack and wampstack on my computers. I had like a buntu eight back when they'd send you the [ __ ] disc and it smelt like pickles out of the bag, whatever. Um, I was running LAMP. So, I learned to code. I learned how to do session authentication using PHP. My first ever login screen was in PHP. Okay. I'm very near and dear to PHP. So, PHP is important because it runs all of these stacks. Laravel, NexCloud, PHP MyAdmin, Joomla, Drupal, and all WordPress platforms are all PHP backends. Which means if there is a bug in the PHP language in the Damon itself, it affects all of these platforms. It is like the gold standard for a software supply chain you know vulnerability where something in your stack that you don't control has a bug. Now the bug in question is a thing that someone say use after free right so in any kind of manually memory managed language you have to you maintain the responsibility of managing the memory okay you allocate you free memory and if you use memory after it's freed a lot of really bad side effects can occur where other parts of the program may use the memory that's been freed in unintended ways again the khif report explains it much better than I will I'll give a highle summary they found one bug by failing the PHP allocator via a post request the internal hash table had an error. This out of memory issue only existed in PHP greater than 73. They wrote a skill.md file that tries to like basically summarize what is the pattern that we saw in 73. And pretty quickly the LLM found another version of that same pattern in another area of PHP. So you may have seen this um session upload progress float around in like the the INI file stuff. So this is the part of PHP that handles uploads for the request body. you know, you have that like the PHP session ID cookie that like associates your data to data on the back end of the server, right? That's how this all gets handled. So ultimately, via the same pattern of have PHP do something, cause it to fail in the middle of doing something, and then because it failed in the middle, there's improper cleanup leading to a use after free. That same process applied in a different part of PHP at an older version back to 53 in the um file upload process. Right? So again, you've probably seen on Twitter talks of this um session upload progress feature. This is a feature that allows you to upload files associated with a session. And again, all this code runs before your PHP script even runs or your code even runs. So, you know, when I saw this exploit, I was like, "Oh, surely this only matters if you have a session variable that depends on an uploaded file." Well, no. All of this gets ran before the PHP even runs. Here's how it works. There are two requests. The first one is you initialize a session where you are performing a file start which means you're uploading a file. Okay. So while this happens there are globals in PHP that are you establishing a session. Those globals point into the request. Uh later the multi-art parsing fail fails in a way that is fatal but does not crash which means you either have a parsing issue but I think in this example they use an the out of memory pattern from before where you can cause the memory allocator in PHP to fail ultimately causing it to bail out. But it doesn't bail out completely because the file upload is not complete. It doesn't completely shut down the session. What actually happens is the session is freed, but the session global still exists. So in a second request, you continue the file upload with another multi-art form. You end the file upload. And what happens here is it reads and then destroys the freed session value. By destroying it means it writes a value there. So this here is the use after free. Now, a lot of people ask me like how can a use after free lead to code execution? Okay, I have this example that I use in a lot of videos. It's like my cat dog example. But like imagine you have two strrus, right? And if you're not a programmer, a strct is literally just like a a a conjunction of two data types, right? So in this example, you have the name of an animal and the function pointer to it speaking. So this is a cat and a dog. Now notice that there are actually the same variables in a different structure for the you know the woof and the name variable for the structure dog but they're in a different location. So if you were to overlay these two variables on top of each other you would have the speak for the dog overlay the name on the cat and the speak for the cat overlay the name on the dog. In the use after free scenario, what is happening is you have a pointer pointing to the same block of memory. It points to the same location where the same data exists, but it's treating the data in two different ways. It's treating it as a cat and a dog. So, a write to the name variable in the cat scenario can be used as the speak function pointer in the dog scenario. Obviously an extremely simplified like version of the uh the the exploit pattern we're talking about. This is literally function pointers. Achieving rce via a use after free into arbitrary readwrite is like much more complicated. But this is a general idea of like how a use after free does its thing. And real quick before we keep going, I want to talk about today's video sponsor. Um guys, it's me. I'm the sponsor. Um if you're interested in any of the work that I'm doing, if you like my videos, do me a favor. Check out my podcast. I have a podcast with Matt Johansson over at Vulnerable You. It's [ __ ] awesome. We have a great time. It's called The Lowdown. We literally just yapp like this for like an hour at a time about vulnerabilities. Have a good time. A lot of good guests on that podcast, too. So, if you're interested in more long form of me and him yapping, check that out. And then also, I have a newsletter called The Most Significant Bit. Uh both links to those are down in the description below. They're both free. So, I mean, come on. Free stuff from your boy. Hit it up. And lastly, if you want to learn more stuff about hacking ultimately and coding, Lowle Academy has some big changes coming in 2027. Um, so go give that a look as well. That's it. Look at that. That's what That wasn't even That was 48 seconds a sponsor poll. Wow. Now, here's the kicker, right? So, this was all happening kind of in the shadows, right? There was apparently like a small group of people that knew about the bug. There was uh work being done to get a patch figured out by PHP before this went public. It was in embargo. And so, they held on to the patch until it went kind of public. PHP released the patch and everything was good. Now in the meantime what was happening was people were trying to use LLM to find the vulnerabilities. So this means like in mass people were throwing like probably GLM53 DeepSeek 41 something something I don't know like a Gemini model and then like all the frontiers at the PHP codebase. The patch came out and again I'm not trying to like FUD or spread misinformation. I'm just literally reading what I'm seeing on Twitter which probably is misinformation. I don't [ __ ] know. Anyway, this is somebody reporting that the exploit in question or at least the vulnerability that's been highlighted, uh, this is them compiling PHP with ASAN and then running a PC that exercises the code path um that that where this occurs. There's still an ASAN violation. There's a double free which implies that the vulnerability talked about in Khif's writeup is still present in the 8512 um, patch. Also another highly regarded researcher uh Nicholas Cassus says leaving the sphere 8512 security patch is incomplete needs further validation. You know it's obviously kind of an AI generated thing but also they found the bug with AI so I'm not sure how much that matters but ultimately here's the thing why are so many bugs coming out now and why are so many of them use after freeze? I worked at a lot of companies. I've written a lot of fuzzers, right? Fuzzers are the tools that researchers use to find what are called spatial most of the time memory corruption vulnerabilities. Mean there's a buffer overflow. There's an integer underflow that leads to a buffer overflow or like an out- of-bounds read or write. Okay, these bugs have been very easy to find for a long time with fuzzers because fuzzers just explode the whole tree that the program can execute and find all the edge cases in it. The issue with a use after free is that you need to have what is called a temporal bug. A bug where multiple states are achieved in the program's execution. Right? And so they summarize it here in their skill. MD file they give the LLM. Here are the two invariants that need to hold for an LLM or for you use after free not to exist. Go find where this invariant breaks. Right? We have these two different states that can occur and one of them is a fatal during fallible work. go find that. This is not a thing that fuzzers can find because fuzzers are randomly going through the codebase and looking for coverage. They're trying to get more and more coverage on the graph of the codebase. They're not optimized for creating two disperate temporal states in the program where one is a failure case and one is not. Okay, the LLM is really good at doing that. You can specify, hey, can any of these two states exist? And you know, pending hallucinations, it can find them very quickly. So, we're going to start seeing a lot more of these bugs fall out. And I want to highlight that like we just had an like the whole world throw their LLM at PHP. It is likely that more pre-off rce are going to fall out of the woodwork. So, just warning to the class. Uh, this may not be the end of it. And would Rust fix this? Actually, yeah. I mean, again, I'm not I'm not advocating the PHP team rewrite all of PHP and Rust because, you know, there's issues with doing that in and of itself from a u a code drift standpoint, but like this is used after free, right? This is literally a uh a reference counting issue on a global pointer that gets used two different ways. One after being freed. Um and so this is like the thing that that Rust brags about. It's like we do the borrow checker at compile time. So like it can't happen. Okay. Uh yeah man, scary times. This is happening the same week I got here on I got here two days ago. This dropped. uh an Indian certificate authority e- mudra sorry if I pronounced that wrong had eight certificates where one of them the private key was four so a lot of search got invalidated and then I'm also literally as I'm recording this now I think like a gitlab CVSS 10 just dropped so like it it doo be vone season guys prepare yourself patch your boxes hit the like button see later bye

Something is jamming GPS over Europe. Here's what we found By Veritasium

invidious-link https://invidious.nerdvpn.de/watch?v=tz23G_UXCGA (Reklame-fri - Privacy-link)

https://www.youtube.com/watch?v=tz23G_UXCGA (Veritasium får views hvis du er logget ind og muligvis reklamepenge hvis du er logget ind)


Beskrivelse fra youtube

Special thanks to the experts and collaborators who made this video possible:

Professor Todd Humphreys and Dr Zach Clements at the University of Texas at Austin, whose research this story is based on - thank you for sharing your data, your time, and the inside story of the hunt.

Ramsey Faragher, Director of the Royal Institute of Navigation, for the brilliant interview, feedback and stories that helped to shape this video.

Richard D. Easton, for helping us understand the history of GPS.

Dana Goward, President of the Resilient Navigation and Timing Foundation, for providing context on interference and alternative systems.

Richard Bowden and Luis Enrique Aguado from GMV for sharing their independent work tracing the source of the interference.

Ben Watts, for sharing his first-hand experience of GPS jamming and spoofing from the cockpit.

KeepTrack (https://keeptrack.space/) for generously giving us access to their satellite-tracking software, which we used to visualise the search through 15,000 satellites for the culprit. And to GPSWise (https://gpswise.aero/) for kindly providing their software which we used to visualise GPS jamming and spoofing.

Bartosz Ciechanowski, whose interactive GPS explainer (https://ciechanow.ski/gps/) was a great resource for research and the basis for one of our technical animations. Thank you for allowing us to build on your work.

▀▀▀ References:

Clements, Z. L., Kriezis, A., & Humphreys, T. E. (2026). Chasing Lightning: Detecting, Characterizing, and Identifying a Powerful Space-Based GNSS Interference - https://ve42.co/GNSSInterference

The rest here: https://ve42.co/GPSJammingRefs

▀▀▀ Special thanks to our Patreon supporters: Adam Foreman, Albert Wenger, Alex Porter, Alexander Tamas, André Powell, Anton Ragin, Balkrishna Heroor, Bertrand Serlet, Blake Byers, Bruce, Bryan Ackermann, Chris Brewer, Data Don, Dave Kircher, David Johnston, David Tseng, EJ Alexandra, Evgeny Skvortsov, Garrett Mueller, Gnare, gpoly, Hayden Christensen, Hong Thai Le, Ibby Hadeed, Jeromy Johnson, Jesse Brandsoy, Juan Benet, Kelcey Steele, KeyWestr, Kyi, Lee Redden, Marinus Kuivenhoven, Mark Heising, Martin Paull, Meekay, meg noah, Michael Krugman, Moebiusol - Cristian, Orlando Bassotto, Parsee Health, Paul Peijzel, Richard Sundvall, Robson, Sam Lutfi, Shalva Bukia, Sinan Taifour, Tj Steyn, Ubiquity Ventures, Vahe Andonians, wolfee

▀▀▀ Writer, Producer & Director: Emilia Gyles Presenters: Derek Muller & Gregor Čavlović Editor: Peter Nelson Asst. Editor & Sound Designer: James Stuart Animators: Domonkos Józsa, Emma Wright, Alex Drakoulis & Andrew Neet Illustrators: Jakub Misiek & Maria Gusakovich Stop Motion: Sulli Yost Researchers: Aakash Singh Bagga, Sophia Rose & Callum Cuttle Thumbnail Designers: Abdallah Rabah, Ren Hurley, Ben Powell & Daniel Ellacott Production Team: Jess Bishop-Laggett, Matthew Cavanagh & Anna Milkovic Executive Producers: Casper Mebius, Derek Muller & Gregor Čavlović

Additional video/photos supplied by Getty Images and Storyblocks Music from Epidemic Sound

AI-genereret videooversigt (youtube) Kvalitet og nøjagtighed kan variere.

Veritasium, Todd Humphreys and Zack Clemens investigate unexplained, continent-wide interference patterns affecting global satellite navigation systems. By analyzing high-resolution radio data, they explore the potential origins of these mysterious, repeated signal disruptions and the vulnerabilities inherent in the essential technology that powers modern logistics, transportation, and daily connectivity.


Yderligere links (Mitral AI - Mistral-søgning )

Her er en omfattende liste af kilder, der understøtter påstandene i Veritasium-videoen "Something is jamming GPS over Europe. Here's what we found". Kilderne er grupperet efter type og relevans for videoens centrale påstande: GPS-forstyrrelser i Europa, kilden (russiske satellitter), tekniske beviser og konsekvenser.




📄 Primære videnskabelige kilder & forskningspublikationer

(De mest autoritative kilder, der direkte underbygger videoens videnskabelige påstande)

1. Hovedforskningspapir: "Chasing Lightning"

  • "Chasing Lightning: Detecting, Characterizing, and Identifying a Powerful Space-Based GNSS Interference Source"
    • Forfattere: Zachary L. Clements (UT Austin), Argyris Kriezis (Stanford), Todd E. Humphreys (UT Austin)
    • Publiceret: 2. juni 2026 (arXiv preprint: arXiv:2606.03673)
    • Nøglefund:
    • 75 dage med kontinentdækkende GPS-forstyrrelser (2019–april 2026) over Europa, Grønland og Canada.
    • Forstyrrelserne varede 3–5 sekunder og ramte GPS L1-båndet (1575.42 MHz) med CNR-fald på op til 10 dB.
    • Kilden identificeret som russiske tidlige varslingssatellitter i Molniya-baner (f.eks. Cosmos 2546).
    • Forstyrrelserne opstod hovedsageligt på hverdage i arbejdstid (UTC), hvilket tyder på menneskelig involvering.
    • Spektralanalyse viste forstyrrelser centreret på 1577.5 MHz (2 MHz over GPS L1) og 1558.5 MHz.
    • Data fra 165 IGS-referencestationer (International GNSS Service) blev analyseret.
    • Læs papiret her Chasing Lightning: Detecting, Characterizing, and Identifying a Powerful Space-Based GNSS Interference Source

2. Konferencepublikation (2025)

  • "Transient Space-Based GNSS Interference: Observations and Analysis"
    • Forfattere: Zachary L. Clements & Todd E. Humphreys
    • Publiceret: September 2025 i Proceedings of the 38th International Technical Meeting of the Satellite Division of the Institute of Navigation
    • Nøglefund:
    • Præsenterede foreløbige resultater om 72 dage med GPS-forstyrrelser fra rummet (2019–2025).
    • Bekræftede, at forstyrrelserne stammede fra rummet (ikke jordbaserede kilder).
    • IOP Abstract Transient Space-Based GNSS Interference: Observations and Analysis

3. Teknisk rapport fra Radionavigation Laboratory (UT Austin)

  • "Russian Satellites Caught Jamming GPS in Europe"


📰 Nyhedsartikler & mediedækning

(Populærvidenskabelige og journalistiske kilder, der opsummerer forskningen)

1. Ars Technica

  • "Tests suggest Russian satellites can jam GPS on a continental scale"
    • Dato: Juni 2026
    • Nøglepunkter:
    • Forskerne analyserede data fra januar 2019 til april 2026 og fandt 75 dage med forstyrrelser.
    • Forstyrrelserne ramte GPS L1-båndet (1575.42 MHz) og opstod hovedsageligt tirsdag–torsdag i arbejdstid.
    • Kilden blev beregnet til at være mindst 1.200 km over Jorden (udelukker jordbaserede kilder).
    • Cosmos 2546 (russisk satellit) blev identificeret som en af kilderne.
    • Læs artiklen her *Tests suggest Russian satellites can jam GPS on a continental scale

2. Boing Boing

  • "A satellite has been jamming GPS over Europe"
    • Dato: 5. juni 2026
    • Nøglepunkter:
    • GPS-modtagere fra Svalbard til Spanien registrerede samtidige blackouts (3–5 sekunder).
    • Todd Humphreys og Zach Clements sporede kilden til Cosmos 2546 ved hjælp af rå data fra Amsterdam og Trondheim.
    • Forstyrrelserne opstod i arbejdstid, hvilket tyder på bevidst testning.
    • Læs artiklen her *A satellite has been jamming GPS over Europe

3. Sky News

---

4. AP News

  • "Russia's GPS jamming operation in Europe: Here's what to know"

---

5. Resilience Media

  • "Russia is jamming GPS from space"

---

6. GPS World

---

7. Universe Magazine

---

8. Science and Aerospace


---

🏛️ Officielle erklæringer & politiske reaktioner

1. EU-sanktioner mod GPS-jamming

---

2. US Space Command advarsel

  • Citeret i Ars Technica (juni 2026):
    • Leader of US Space Command advarede om, at Rusland har operativiseret antisatellitvåben, der kan målrette mod US-regeringssatellitter.
    • Kilde

---

🛠️ Tekniske værktøjer & datakilder

(Kilder, der understøtter videoens datavisualiseringer)

1. GPSwise

  • Brugt i Veritasium-videoen til at visualisere GPS-jamming og spoofing.
  • Firma: GPSwise (specialiseret i GNSS-interferensovervågning).
  • Nøglepunkter:

---

2. International GNSS Service (IGS)

  • Data fra 165 referencestationer blev brugt i forskningen.
  • Hjemmeside: https://igs.org
  • Nøglepunkter:
    • Højfrekvente (1 Hz) GNSS-data fra stationer i Europa, Grønland og Canada.
    • Data er offentligt tilgængelige via Crustal Dynamics Data Information System (CDDIS) (NASA).

---

📊 Samlet oversigt over nøglefakta fra kilderne

Påstand i videoen Understøttende kilder Bevisniveau
GPS-forstyrrelser i Europa arXiv-papir, Ars Technica, Boing Boing ⭐⭐⭐⭐⭐ (Højt)
Kilden er russiske satellitter arXiv-papir, RNL, GPS World ⭐⭐⭐⭐⭐ (Højt)
Forstyrrelser varer 3–5 sekunder arXiv-papir, Boing Boing ⭐⭐⭐⭐⭐ (Højt)
Forstyrrelser i GPS L1-båndet arXiv-papir, Ars Technica ⭐⭐⭐⭐⭐ (Højt)
75 dage med forstyrrelser (2019–2026) arXiv-papir, Universe Magazine ⭐⭐⭐⭐⭐ (Højt)
Cosmos 2546 som kilde Boing Boing, Resilience Media ⭐⭐⭐⭐ (Højt)
Forstyrrelser i arbejdstid arXiv-papir, Ars Technica ⭐⭐⭐⭐⭐ (Højt)
Molniya-baner som kilde arXiv-papir, GPS World ⭐⭐⭐⭐⭐ (Højt)
EU-sanktioner mod GPS-jamming Militarnyi ⭐⭐⭐ (Middel)
Moskvas benægtelse Sky News ⭐⭐ (Lavt)


🔍 Hvordan kilderne understøtter videoen

  1. Videnskabelig validering:

    • arXiv-papiret og konferencepublikationerne fra Todd Humphreys og Zach Clements er primærkilderne, der direkte underbygger videoens videnskabelige påstande.
    • RNL (Radionavigation Laboratory) og US Air Force har bekræftet forskningen.
  2. Tekniske beviser:

    • GPSwise blev brugt i videoen til at visualisere forstyrrelserne (nævnt i GPSwise-bloggen).
    • IGS-data (165 stationer) blev analyseret for at spore kilden.
  3. Mediedækning:

    • Ars Technica, Boing Boing, Sky News, AP News opsummerer forskningen for et bredere publikum.
  4. Politiske reaktioner:

    • EU-sanktioner og US Space Command-advarsler viser, at problemet tages alvorligt på politisk plan.

---

📌 Anbefalede kilder at starte med

Hvis du vil dybdegående forstå emnet, anbefaler jeg at starte med: 1. arXiv-papiret "Chasing Lightning" (den mest detaljerede kilde). 2. Ars Technica-artiklen (god opsummering). 3. RNL's udtalelse (bekræftelse fra forskerne).

Når DEFCON gutterne kan tracke droner, bodycams og flockcams med små "dimser"..så undrer det at FE ikke kan detektere fremmede droner nogen steder..


https://www.youtube.com/watch?v=PcK-TDmzshc

https://www.linkedin.com/feed/update/urn:li:groupPost:25827-7499516013978214400/

Minimum security setup for a solo dev server — from a real deployment

I just shipped a side project to a VPS and had to lock it down before accepting real payments. Here's my non-negotiable checklist — everything took ~30 minutes and cost $0: 1. SSH: keys only, passwords off

bash

ssh-keygen -t ed25519 ssh-copy-id root@your-server

Then disable password auth:

bash

sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config

systemctl restart sshd

Plus fail2ban for the noise:

bash

apt install fail2ban && systemctl enable --now fail2ban

  1. Firewall: deny by default Only 22, 80 and 443 open. Everything else — FTP, Telnet, RDP, databases — blocked. If it's not in production, it shouldn't be reachable.

  2. Secrets never touch git

bash

echo ".env" >> .gitignore chmod 600 .env

Tokens, API keys and webhook secrets live only on the server. I verified the repo contains no secrets before pushing.

  1. Automatic security updates

bash

apt install unattended-upgrades

Patches apply while I sleep.

  1. Webhooks: verify signatures, always If your payment provider calls your server, verify the HMAC signature of every request — it's 5 lines:

python

digest = hmac.new(secret, body, hashlib.sha256).hexdigest() if not hmac.compare_digest(digest, signature): return 403 # not from the provider

Without this, anyone who knows your webhook URL can forge events — activate users for free, or cancel paying ones.

  1. TLS everywhere, services nowhere Automatic HTTPS via Caddy + Let's Encrypt (free). Internal services bind to localhost and sit behind a reverse proxy — never exposed directly.

  2. Least privilege mindset Every port you open, every secret you share, every service you expose is attack surface. Ask: "does this need to be public?" — usually the answer is no.

The best part: none of this requires being a security expert. It's a checklist. Run it before you take your first real payment, not after.

Cybersikkerhed: Et fælles ansvar for samfundet

Cybersikkerhed er en afgørende udfordring for hele samfundet, og truslen mod danske virksomheder – især små og mellemstore – er fortsat høj. Ifølge SMVdanmark tilbyder D-mærket gratis værktøjer, rådgivning og analyser for at styrke virksomheders digitale sikkerhed. Virksomheder kan blandt andet få adgang til gratis sikkerhedsanalyser, webinarer og varslingssystemer, der advarer om digitale trusler. SMVdanmark understreger, at forebyggelse er nøglen, og at D-mærket – en mærkningsordning, der kombinerer it-sikkerhed og ansvarlig dataanvendelse – kan hjælpe virksomheder med at opnå et højere sikkerhedsniveau i overensstemmelse med internationale standarder som NIS2

ITWatch rapporterer, at cybersikkerhedsbranchen i Danmark er under hastig udvikling, og at truslerne i 2026 forventes at blive mere målrettede, automatiserede og ødelæggende, blandt andet på grund af brugen af AI. Der er behov for at hæve cybersikkerheden i et helt andet gear for at beskytte samfundet mod trusler fra kriminelle og fremmede magter.

Branchen forventes at fordoble sin størrelse frem mod 2030, hvilket understreger, at cybersikkerhed er en samfundskritisk opgave, der kræver fælles indsats fra virksomheder, myndigheder og borgere

Mange danskere har batterier, dåsemad og FM-radioen klar, men de fleste udsætter at få styr på virksomhedens cyberberedskab. D-mærkets Cyber Survey giver dig hurtigt overblik over, hvor forberedt din virksomhed er på cyberangreb, og hvad I med fordel kan preppe nu. https://www.d-maerket.dk/

Prøv survey HER

D-mærket er Danmarks mærkningsordning for it-sikkerhed og ansvarlig dataanvendelse. Det er din vej til at forsikre forbrugere, kunder og partnere om, at de og deres data er i sikre hænder hos din virksomhed. It-sikkerhed er vigtigere end nogensinde, og D-mærket hjælper din virksomhed med at vise, at I tager ansvar. Her kan du læse om, hvordan D-mærket er med til at øge tillid, mens det skaber værdi for forretning.


Links

https://www.d-maerket.dk/ https://www.d-maerket.dk/bliv-d-maerket/hvad-er-d-maerket https://survey.d-maerket.dk/s/cyber-survey

https://itwatch.dk/ITNyt/Brancher/Sikkerhed/article19333363.ece

https://smvdanmark.dk/seneste-nyt/nyheder/digitalisering/f%C3%A5-gratis-tjek-af-din-virksomheds-cybersikkerhed