Michael Grafl (@MyKey_) header
Michael Grafl (@MyKey_) profile picture

Software Engineer, working at @skidata | Studied at @alpenadriauni | Tweets are my own (unless blatantly plagiarized)

Austria
Joined July 2009
Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)Photo by Michael Grafl (@MyKey_)
Michael Grafl retweeted
Playwright and browser security reminder. We saw a post suggesting that you delete Playwright because it bundles browsers with CVEs. That is a misconception. Do not delete Playwright🙃. Here is how it works and what you should do. No Playwright package bundles a browser. Agents on Playwright MCP or CLI run your stable Chrome, which gets Chrome's security updates, with the sandbox on. 🤖 If you use Playwright MCP or the Playwright CLI They use the stable Chrome / Edge on your machine, so it gets its normal updates. No config edit is needed. 🧪 If you use the test runner When you run npx playwright install, Playwright downloads Chrome for Testing, pinned to the build we tested that release against. The pin is on purpose. Your tests run on the same browser on every laptop and CI machine, and a browser update cannot suddenly break your suite. You choose when to move by upgrading Playwright. New releases usually pin a build ahead of stable Chrome, so you see breakage before your users do. We recommend this for full e2e test suites on your own trusted app. This build can miss Chrome security fixes until the next Playwright release, and by default it runs with the sandbox off. Do not use it on the hostile web. 📚 If you use the library API chromium.launch() has the same defaults: the pinned build with the sandbox off. If your code visits pages you don't control (scrapers, agent scripts), max out protection: chromium.launch({ channel: 'chrome', chromiumSandbox: true }) 🔒 Always keep Chrome / Edge updated. Some bugs can escape a sandbox. Happy testing!
42
270
33
2,338
166,529
Michael Grafl retweeted
Patrick Stewart, who starred in 'Star Trek' and 'X-Men,' has died after a brief battle with Alzheimer's Disease and Lewy Body Dementia, his family says
93
728
334
5,623
257,973
Michael Grafl retweeted
🖖 RIP Walter Koenig - #StarTrek's Chekov Passes Away at Age 90 💖 Koenig portrayed Ensign Pavel Chekov in The Original Series, all six original Star Trek films, and voiced President Anton Chekov in #StarTrekPicard! 1936 - 2026 💔
364
2,234
427
9,438
158,253
Michael Grafl retweeted
the good thing about the eMudhra CA private key mess is that we can finally use https on localhost
44
487
32
9,338
215,898
Michael Grafl retweeted
“We had to find a way and we did. Looking back, we were the luckiest people in the world; there was no choice but to be pioneers.” —Margaret Hamilton Rest in peace, Margaret. Your trailblazing work leading the development of the on-board flight software for the Apollo spacecraft will forever be remembered. 🫡
136
5,095
238
17,164
251,167
Michael Grafl retweeted
Margaret Hamilton, the groundbreaking researcher who helped create the field of software engineering and whose code helped land NASA’s Apollo astronauts on the moon, has died. She was 90. cnn.it/4dutYrD
137
1,230
103
4,852
1,924,403
Michael Grafl retweeted
‘Buffy The Vampire Slayer’ and ‘Ted Lasso’ actor Anthony Head has died at the age of 72.
1,398
6,030
7,260
62,285
5,778,722
Michael Grafl retweeted
Time to talk about this one. CopyFail (CVE-2026-31431) — a 732-byte Python script that roots every Linux distro shipped since 2017. 🧵
a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9 👀
42
448
79
2,706
747,935
Michael Grafl retweeted
Sie haben auch erstmals ein AI-generated Video aus den vorher nachher Bildern online gestellt, was das Ausmaß finde ich nochmal deutlicher macht. Die Gletscher Österreichs sind in der Endphase.
4
26
73
3,285
Michael Grafl retweeted
It turned out there are many more payloads used in the Notepad++ attack! To stay undetected, its masterminds were COMPLETELY changing execution chains about every month. Here are more IPs used in the attack: 45.76.155[.]202 45.32.144[.]255 Read below for many other IoCs! [1/8]
18
225
14
1,115
108,084
Michael Grafl retweeted
Non-malware schizos asking about why the Notepad++ malware payload was so interesting. Okay, we'll discuss it without getting too schizo. First, Rapid7 (and other various Cyber Threat Intelligence vendors) seem to generally attribute the Notepad++ compromise to Chinese APT group "Lotus Bloom". They attribute it to Lotus Blossom because they tend to recycle code segments to save time. Basically, fingerprints. Lotus Blossom is the invented name intelligence organizations have assigned to a group of Chinese government sponsored hackers. Their true identity is unknown, but speculative. It is not one person, it is likely a group of unknown size, it could two people, it could 15 people. Lotus Blossom has been active since 2009 (or so they speculate). Lotus Blossom are not noobs who do hacker noob stuff. Lotus Blossom is assigned high-profile tasks. Lotus Blossom does extremely specific targets, most notably they are instructed by the Chinese government to hack government institutions, telecom companies, aviation companies, and critical infrastructure (nuclear power plants, electrical power grids, hydroelectric dams, etc) in Southeast Asia and Central America. When Lotus Blossom targeted Notepad++, and users in specific regions (presumably Southeast Asia and Central America) attempted to do an update it delivered "Chrysalis Backdoor". Chrysalis Backdoor is the name intelligence companies invented and now call this malware. Chrysalis Backdoor used a lot of really common malware techniques which truthfully I won't go too much into (API hashing, custom implementations of GetProcAddress, malware nerd stuff). However, what makes this malware very special is it's usage of Microsoft Warbird. Microsoft Warbird is a proprietary technology which is rarely discussed. It is an internal library Microsoft uses to obfuscate it's instruction set in-memory. In other words, it's Microsoft really fancy custom way of preventing people from reverse engineering what Windows is doing when it's running. Unknown to me personally (and a lot of people apparently), in the past few years (2023) some security researchers have discovered ways to discretely use Microsoft Warbird and use it as a weapon. Basically, you can use undocumented APIs in Windows to use Warbird for your malware. This provides a way to hide what your malicious code is doing while it's running without needing any external tooling or custom implementations. They're weaponizing Microsoft's anti-tampering and/or anti-reverse engineering technology for malicious purposes. This is extremely impressive because it shows: 1. Lotus Blossom pays close attention to really talented security researchers or... 2. Lotus Blossom has really good security researchers on payroll Both are totally possible. The remainder of the Lotus Blossom tooling is fairly generic malware stuff and isn't too terribly impressive. Lotus Blossom (unironically) did a very good job hijacking Notepad++ update infrastructure and weaponizing Microsoft's anti-tampering technology (Warbird).
30
171
11
1,720
95,466
Michael Grafl retweeted
This is bad. Putty level bad. notepad-plus-plus.org/news/h…
249
1,455
285
11,222
3,134,860
Michael Grafl retweeted
you have got to be kidding me.
Why is pasting into VSCode Terminal slow? Because it sleeps for 5ms every 50 characters.
23
135
7
6,401
622,502
When asking coding questions
231
1,434
131
24,546
707,622
Michael Grafl retweeted
#JUnit 6.0.0 is released! ✨ Java 17 and Kotlin 2.2 baseline 🌄 JSpecify nullability annotations 🛫 Integrated JFR support 🚟 Kotlin suspend function support 🛑 Support for cancelling test execution 🧹 Removal of deprecated APIs docs.junit.org/6.0.0/release…
2
78
8
220
21,219
I cannot stress enough there are four different ads in this screenshot
enshittification | noun | when a digital platform is made worse for users, in order to increase profits
213
13,423
205
162,005
3,691,713
Michael Grafl retweeted
i still can’t believe this was a real answer… one of the most frustrating UX experiences on earth (posts showing for a second then disappearing) and the answer was “it tests better” 🤦‍♂️
Replying to @jspujji
Let me provide some context: The reason all social apps do this is because in all cases, it tests better to show the freshest content (and if there is no network connection, show the old content). Having said that, we have an on-going test to inject the new posts right below the viewport to eliminate the flash, but my prediction: we would have to accept a measurable drop in timeline relevancy.
2
1
5
281
Michael Grafl retweeted
#JUnit 6.0 RC1 is ready for testing! 📰 Everything in 6.0 M1 and 6.0 M2 🏷 Improved display names for parameterized classes/tests ♻ MethodOrderer.Default and ClassOrderer.Default for @⁠Nested classes Please try it out before 6.0 GA! ✅ junit.org/junit5/docs/6.0.0-…
14
35
2,455