Charles Neill (@ccneill) header
Charles Neill (@ccneill) profile picture

Risky business

Austin, TX
Joined July 2012
> we need to hold on for ~18 months
as bad as things have gotten in the past 4 days, they are going to get a lot worse before they get better. security leaders, never let a crisis go to waste: please go to your boards and ask for help right now. not for ai, for the basics. (we need to hold on for ~18 months.)
1
68
eMudhra exiting the global SSL/TLS certificates business due to "social media" emudhra.com/en/press-release…
39
"Like many of the largest businesses in the country, we were affected by the recent PHP vulnerabilities that were discovered and exploited by advanced artificial intelligence." vs. "We ran dozens of agents and told them 'make no mistakes' on our vibe-coded identity service."
Besides its mimetic appeal, being in the Too Big To Fail bucket hedges you against being invisible to a bureaucracy so abstracted from reality that it literally cannot imagine you
33
BIND 9 (most popular DNS server) potential RCE. Combine this with the eMudhra certs and we might have us a gooood ol' time Thankfully, sounds nontrivial to exploit
1
2
129
Achieve RCE on BIND 9 server -> poison DNS -> use mitmproxy to dynamically generate eMudhra certs on your evil box -> own any remaining vulnerable clients (curl, autoupdaters, use your imagination - almost anything but browsers)
mitmproxy: use `--emudhra` to sign TLS certificates 💀
1
1
98
*Cybersecurity LinkedIn guru voice* You don't move fast enough. You don't do CI. All belt, no suspenders. Solution: remove the "A" from the CIA security triad. We never cared about it anyway. They can't hack what's already offline. You're not just secure; you're a trailblazer.
2
262
Security called me at 6:12 AM today. "Patch every PHP server immediately." I asked what happened. "Two critical vulnerabilities. Remote code execution. No authentication required." Cool. How many PHP servers do we have? According to inventory: 12 According to reality: Nobody knows. We found one running WordPress. Three running old internal tools. One under someone's desk. Two inside vendor appliances. A forgotten employee directory from 2016. And a server named: PHP-OLD-DO-NOT-TOUCH Naturally, that one runs payroll exports. Then we found a PHP 5.6 box. I asked who owned it. The documentation said: BRIAN. Brian left in 2019. We called Brian. He said: "Oh wow, that's still running?" Excellent. By 8 AM, leadership joined the incident call. CEO: "Can hackers actually get in?" Security: "Potentially yes." CEO: "Without a password?" Security: "Yes." CEO: "Then why do WE need passwords?" Not the lesson. Finance asked if we could wait until the weekend to patch because downtime affects revenue. Security explained that the alternative was letting strangers execute code on our servers. Finance asked for a cost comparison. At 9:17, someone suggested temporarily taking the vulnerable websites offline. Marketing refused. "Our campaign is live." So for the next hour, the company officially decided maintaining a landing page for 20% off webinar registration was more important than preventing remote server takeover. We finally patched everything we could find. Then our scanner discovered another PHP server. Hostname: TEMP-PHP-2014 Uptime: 4,512 days. Nobody knows what it does. Nobody owns it. Nobody can shut it down. But every time we block network access, the warehouse stops printing shipping labels. Security has classified it as critical infrastructure. It is running PHP 5.4. The vulnerability has existed longer than half our employees. The emergency patch took four hours. Finding out what PHP actually runs took eleven. The internet isn't held together with code. It's held together with servers everyone is afraid to turn off.
916
7,072
1,159
57,992
3,846,477
We are beginning to see what I feared years ago with LLMs: the robots find vulnerabilities at superhuman speed, patches land continuously to fix the latest issues, and humans struggle to keep up Into this mess steps the supply chain compromise that owns you for moving fast
🚨 LiteLLM, a Python package for connecting to AI model providers with 92M+ monthly downloads, has been compromised. Version 1.107.0 ships credential-stealing malware through PyPI wheels and Docker images, targeting cloud credentials, developer secrets, and AI tools.
1
2
106
"Just have the LLMs handle patching." Now you have (at least) 2 problems
2
30
It's unfortunate that this probably isn't the last time we'll see something like: Vendor discloses vulnerability under embargo to trusted parties -> FUD starts on X -> researchers say they maybe found it with LLMs -> trusted parties break embargo to look good to their own customers -> attackers get the patch to validate exploits -> people thinking they're prepared for disclosure still get popped early
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
53
What a fun day of security incidents 🫡 TYFYS to everyone handling the response
1
2
113
To give you an idea of what this means, some joker generated a cert for google.com and "." that @censysio currently reports as trusted in all browsers they use for validation platform.censys.io/certifica…
1
56
The government website where India tracks its legitimate CAs is currently down. I wonder why. (This wildcard was *not* issued by one of the affected intermediate certs, to be clear. I'm sure that's cold comfort to them right now, though) cca.gov.in/e_mudhra.html
39
Is there a name for this yet
58
Charles Neill retweeted
$50K First Letters Prize awarded to Erwin Nieuwlaar for finding text in PHerc 343! This is the first time in nearly 2000 years that anyone has read text in this rolled scroll. Our papyrologists reckon it’s part of the expression πᾶ̣ν τ̣ὸ γιν̣όμ̣ε̣[νον, “everything that happens/is generated”
7
65
11
451
23,289
Concerning report from @huggingface here: > A malicious dataset abused two code-execution paths in our dataset processing... The campaign was run by an autonomous agent framework... executing many thousands of individual actions across a swarm of short-lived sandboxes...
1
116
> We do not know which model powered the attacker's agents, whether a jailbroken hosted model or an unrestricted open-weight one; either way, the attacker was bound by no usage policy, while our own forensic work was blocked by the guardrails of the hosted models we first tried.
1
24