Head of Research @nextronsystems #DFIR #YARA #Sigma | detection engineer | creator of @thor_scanner, Aurora, Sigma, LOKI, YARA-Forge | always busy ⌚️🐇 | vi/vim

Frankfurt, Germany
Joined June 2013
I've decided to put a screenshot showing the hex editor view of a Turla Kazuar sample behind acrylic glass on my desk to always remind me, why I am doing all this ... because I 💛 to be a pain in the neck of the bad guys xitter.cf/cyb3rops/status/115659…
It seems that I have some fans over in Russia 🐻 #TurlaLicksAss thx to the FireEye analyst who brought this to my attention virustotal.com/gui/file/4417…
183
244
28
2,172
Florian Roth ⚡️ retweeted
#Kimsuky (APT-C-55) is delivering persistent backdoors through multilingual LNK phishing lures After reading the 360 Threat Intelligence Center's report on APT-C-55's multi-path delivery campaign, we found a cluster of nine related malicious LNK files submitted between September and October 2026, with detection ratios around 10-30 out of 60+ engines. The LNK files execute a layered attack chain: base64-encoded batch scripts decoded via a renamed copy of certutil.exe, staging in C:\Users\Public, nircmd disguised as ntoskrnl.exe, and scheduled tasks running every 9 minutes for persistence. A parallel variant uses PowerShell with double hex-encoded payloads, and a third path poisons the open-source pybroker Python library as a supply chain attack. Analysis & IOCs: github.com/NextronSystems/io…
5
1
26
2,096
Florian Roth ⚡️ retweeted
The China state-aligned threat actor Storm-0940 used the agentic AI penetration testing framework ARTEX to automate attacks targeting hundreds of organizations globally across a broad range of industries. Microsoft Threat Intelligence assesses that Storm-0940 was responsible for the recently disclosed ConnectWise supply chain compromise of a multitenant application. msft.it/6018aakEE Our investigation found that Storm-0940's use of ARTEX accelerated the speed of compromised application abuse to authenticate to target environments through applications that had already been granted access, allowing the threat actor to operate without requiring an interactive user sign-in. AI-accelerated follow-on activity included reconnaissance, application credential changes, and attempts to modify privileges that could enable expanded or persistent access. Read our blog for a detailed analysis and indicators of compromise (IOCs), along with Microsoft Defender detections, protection recommendations, and guidance on investigating service principal sign-ins and unexpected application credential or privilege changes.
26
319
86
1,543
304,333
Florian Roth ⚡️ retweeted
The response of eMudhra is so full of shit, it needs to be called out. 🧵
89
157
37
2,158
91,315
Chainguard coordinated release but only for themselves
Replying to @chainguard_dev
"On October 21st at 07:41 UTC, more than six hours before the coordinated release, Chainguard unilaterally broke the embargo and published built images containing the fix. Like other distributors, Chainguard had received the patch in advance so its users could update the moment the vulnerabilities were disclosed. Any attacker could now study the fix in binary form while every other PHP user was still waiting for the release. This disregarded weeks of work by many parties toward a coordinated disclosure." thephp.foundation/blog/2026/…
1
39
4,398
Florian Roth ⚡️ retweeted
One-click mitigation for php2shell vulnerability: If you have Cloudflare in front of your PHP website, please login to the dashboard and click this button to make sure you are protected. dash.cloudflare.com/?to=/:ac… This reduces your risk but doesn't fix the vulnerabilities in PHP. We recommend updating PHP to a patched version.
39
182
16
980
154,963
Florian Roth ⚡️ retweeted
Two critical PHP RCEs are patched: CVE-2026-109618 and CVE-2026-109619, both CVSS 9.2. • Fixed in 8.5.12, 8.4.27, 8.3.36, and 8.2.35. You can still focus on detection coverage today. Security Labs writeup (coverage + guidance): elastic.co/security-labs/thr… Most PHP RCEs converge on the same outcome, whatever the bug: a web server process (php-fpm, php-cgi, apache2, httpd) doing something a request-serving daemon almost never does legitimately. • a shell to confirm access: id, whoami, uname -a • a second stage pulled in: curl http://... | bash • a reverse shell: bash -i >& /dev/tcp// • a webshell written into the web root The bug class is public now: out-of-memory corruption, and stale state reused by the same worker. The behavior is what you detect. We recently ran a different PHP RCE end-to-end (wp2shell): apache2 spawning dash to run id; whoami; hostname fired the exact rules that we suspect to catch php2shell. Payload Execution by Web Server kills the shell on the endpoint. The Suspicious/Unusual Command, Child, and File Creation via Web Server rules stack on top. (PHP did confirm partial php.ini mitigations. session.upload_progress.enabled=0 blocks the confirmed session paths only. Patch is still the fix.) Patch to 8.5.12, 8.4.27, 8.3.36, or 8.2.35. Verify that the stack is enabled now. Guidance + every rule link below.
2
21
2
65
5,615
Let’s not forget about this certificate clusterfuck while everyone is busy with the PHP RCE news. Almost at the same time, another serious security incident became public. Eight intermediate CA certificates from eMudhra were found to use ridiculously weak private keys. We’re talking about P-384 keys where one private key was literally the number 4. FOUR! Six of these were TLS CAs, allowing anyone to recover their private keys and potentially issue trusted certificates for arbitrary domains. Major browsers have already blocked the affected CAs. But what about API clients, backend services, embedded devices, containers, and systems with outdated trust stores? Many don’t enforce Certificate Transparency or check revocation. Some could remain vulnerable for years. These weak keys have existed since April 2025. No confirmed malicious exploitation so far, but the implications are serious. Don’t overlook this one while focusing on PHP. Technical details and test endpoints: emudhra.we-have-a-problem.co…
10
85
6
458
27,508
Quote: "an independent security researcher reported that the keys of eight eMudhra Global TLS intermediate Certificate Authorities were cryptographically weak". Well, yeah, they were weak. A private key should look something like this: 84ac06790886c80c48d31691fd4c0fe9 ce3207f9807f2fe571d6e4ec426d7864 4298fc53df2b92566970e757ac998c34 Instead, their keys looked like this: 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000004
3
1,737
Florian Roth ⚡️ retweeted
The rate of patch bypasses has skyrocketed (8x) this year. 🚀 The good news is that the timing of the increase happens to correlate with Anthropic and OpenAI's security product releases so the increase might be defender-lead. The bad news are that vulnerabilities that have been reported to be exploited in the wild were bypassed 4x more often, so attackers definitely also got the memo that security patches are highly valuable context for vulnerability research. For defenders, it's getting important to spend considerable resources on robust and comprehensive patching to stay a step ahead of the attackers. More stats, like in which linux kernel areas 10%(!) of vulns are directly caused by patches of other vulns, are available in the full report below
3
2
1
10
2,045
Florian Roth ⚡️ retweeted
ASD can't stand the heat either! I'm fucking itching to get bad traffic over here tho! :P #php2shell
NCSC Netherlands has pulled their website! But don't worry gang! PWNDEFEND (WORDPRESS) is staying up!) if we get pw3d we will at least have logs and samples! :D (then only PII in that site is.... my email address LOL!)
1
2
7
2,302
Florian Roth ⚡️ retweeted
Testing the POCs in the lab with Claude, whilst drinking tea! (how 2026 of me :P /S cringe) and.... we have some interesting and useful intel..... exploitation of these CVEs doesn't appear trivial.... "Most likely why: the authors targeted a specific build (“Ubuntu php 8.5.4 profile-21”) with hard-coded struct offsets and a build-specific address delta. Vanilla upstream 8.5.4 either doesn’t carry that exact reachable path or the heap groom depends on that build’s allocator state. I’ll also be candid: this CVE pair is described in the PoCs themselves as leaked/pre-embargo/”presumed,” and I can’t independently verify it maps to a reproducible upstream bug." #PHP
8
10
1
66
10,767
Two very useful posts on monitoring and hardening PHP services, plus an Nmap command to help find them in your environment: 1. Discovery with Nmap Common and alternative web ports; HTTP headers that may expose PHP versions: nmap -sT -sV --version-light -T4 --max-retries 1 --open -p 80,81,443,8000-8010,8080-8090,8181,8443,8880,8888,9000,9001,9080,9090,9443 --script http-headers --script-timeout 10s --script-args 'http-headers.path=/index.php,http-headers.useget=true' Look for X-Powered-By: PHP/.... Fast inventory check; hidden PHP deployments can be missed, and version banners don’t confirm vulnerability. 2. Huntress: Monitoring and detection • Confirmed facts and remaining questions • Suspicious PHP child processes, shells and downloaders • Webshells and other post-exploitation activity • My process-watcher for Linux process visibility huntress.com/blog/php2shell-… 3. Vincent Schmalbach: Hardening and patching • Temporary nginx/Apache filters and upload-progress settings • WAF/origin bypass checks • Package and backport verification • PHP-FPM/worker restarts, container rebuilds • Side effects and checks for compromise vincentschmalbach.com/cve-20… Temporary measures are stopgaps. Prepare to apply the official fixes as soon as available.
Okay, since the news is already out: an RCE vulnerability in PHP core, CVSS 10.0. Further details are scheduled for release on October 20. Only PHP 8 will receive patches.
4
80
5
292
28,407
PHP Patch, take it offline, or put it behind a WAF and hope it filters the exploit requests. I wouldn’t count on a configuration-only fix unless one is confirmed. For inventory, this Nmap command can reveal PHP versions exposed in HTTP headers: nmap -sT -sV --version-light -T4 --max-retries 1 --open -p 80,81,443,8000-8010,8080-8090,8181,8443,8880,8888,9000,9001,9080,9090,9443 --script http-headers --script-timeout 10s --script-args 'http-headers.path=/index.php,http-headers.useget=true' Only scan systems you’re authorized to test. This finds advertised versions, not every PHP server, and doesn’t confirm vulnerability.
Okay, since the news is already out: an RCE vulnerability in PHP core, CVSS 10.0. Further details are scheduled for release on October 20. Only PHP 8 will receive patches.
3
63
4
266
31,591
Okay, since the news is already out: an RCE vulnerability in PHP core, CVSS 10.0. Further details are scheduled for release on October 20. Only PHP 8 will receive patches.
35
319
113
1,423
461,110
Yes, sorry, so ... - the CVSS is "only" 9.2 - they rescheduled from 20th to 21th 14:00 UTC
1
6
2,228
Florian Roth ⚡️ retweeted
An enterprise environment emits billions of log events every day. During an incident, the responder rarely needs all of them. They need the few hundred or thousands that tell the story: the burst of 4625 failures followed by a single 4624 success, the encoded PowerShell spawned by winword.exe, the new service installed at 03:12 on a domain controller. Logs analysis is the discipline of getting from the first number to the second fast enough to matter. That job has become harder in two directions at once. Attackers using AI tooling generate evidence at machine speed and pad real actions with benign-looking activity. Meanwhile, the obvious shortcut of pushing logs into an LLM runs into guardrails, context-window limits and data-protection obligations. Hugging Face’s responders hit exactly that wall in July 2026, when roughly 17,000 , later to be claimed 3 billion events (still healthy daily workload) were refused by frontier models and had to be processed on a local model instead. Below, we cover log analysis end to end, then look at LogTotal, SOC Prime’s free answer to the incident-time version of the problem. socprime.com/blog/log-analys…
9
38
2,811
Florian Roth ⚡️ retweeted
Exploiting Reversing (ER) Series | Article 11: Windows: Missing Bounds in the Print Spooler. The article has 60 pages, free. A user-mode target this time instead of a kernel one, worked end to end: from a missing bound check to a SYSTEM shell, with the service still running afterwards. Published on: blackstormsecurity.com/resea… What it covers: [+] The bug: a heap overflow (CWE-122) in the Print Spooler's form-enumeration path, reached through InternalEnumForms → CopyIniFormToFormInfo → PackStrings → memcpy. [+] It is still unpatched. I submitted it to Microsoft in March 2026 and MSRC assessed it as below the bar for immediate servicing, because the PoC requires administrative rights. Re-confirmed working in October against current mainstream and Canary builds. [+] The exploitation, which is two thirds of the article, with four stages: groom, corrupt, control, execute. The process never crashes: spoolsv.exe is left running and the planted form deleted. [+] Important note: I had already notified the MSRC months ago that I would write an article about the vulnerability and publish it. I would like to thank Ilfak Guilfanov ( @ilfak ) and Hex-Rays SA ( @HexRaysSA ) for the continuous support. This article will be published on exploitreversing.com/ next week. Hope you enjoy the read! #Windows #PrintSpooler #VulnerabilityResearch #ExploitDevelopment #ReverseEngineering #HeapExploitation
39
148
6,976
Florian Roth ⚡️ retweeted
Here's a project I've been quietly working on for months but finally got around to properly releasing: FrankenMermaid. It's a complete ground-up, memory-safe, hyper-optimized Rust implementation of MermaidJS that compiles into wasm. It's over 100x faster! frankenmermaid.com/
19
17
3
229
17,387