Pinned Tweet
Every few months, DHH gives me a brand new tweet that I can proudly pin on my profile. 🫡
play.google.com/store/apps/d…
Reminds of that meme:
- What a week, huh?
- Captain, it's Wednesday.
Crazy 72 hours in security. Three major incidents dropped back-to-back: eMudhra, PingCAP (TiDB Cloud), and PHP.
Here is the short version of what happened and who got hit.
1. eMudhra (Trusted CA compromise)
eMudhra generated 8 intermediate CA certificates in April 2025 (cross-signed by Sectigo). A bug in their HSM key-wrapping test script created a second set of P-384 keys where the private keys were single-byte numbers under 256. Operators picked the wrong key labels and signed them into real CA certs.
One of the intermediate CA private keys was literally the number 4.
The other seven: 56, 66, 115, 155, 156, 230, 237.
Three weeks later (May 2025), their CRL signatures started failing because the CRL signer was using the real keys instead of the weak ones. Instead of asking why the keys didn't match, someone switched the CRL signer to the weak keys and closed the ticket.
• Browsers are safe: Chrome, Firefox, Apple, and Microsoft already blocked them, and zero rogue certs hit CT logs.
• Servers are not: curl, Python (certifi), Go binaries, and Docker base images don't check CRLs. Update ca-certificates, certifi, and Go (1.27.3 / 1.26.10).
• 10-second check on any server:
curl dv-g3b-emudhra.we-have-a-pro…
(TLS error = safe. 200 OK = still vulnerable.)
2. PingCAP / TiDB Cloud (10.6 TB breach)
Attackers found GCP and Azure credentials committed inside PingCAP's own repos. They set up a replication feed of TiDB Cloud's production control plane and exported the entire database every 6 hours for 22 straight days. 88 full exports, zero alerts. 200 GB is already out on torrents.
Beyond the 413 private repos and 20.6M customer SQL queries logged from their web SQL Editor, PingCAP engineers were pasting customer secrets into Jira tickets.
Who is affected in the leaked records:
• Live credentials exposed in support tickets:
- Pinterest: AWS keys for their pingcap-logs S3 bucket
- CardX / Silverlake (NPCI-linked env): AWS admin key in a backup log with full access to 258 external S3 buckets
- DeBank: 38 presigned S3 URLs
- An unnamed AI/dev platform: a 314 MB slow-query log attached to a ticket containing 8,027 live customer secrets (an AWS root key, a GitHub admin PAT over 1,701 repos, 7,485 AWS STS tokens, and 192 OpenAI/Anthropic/Gemini keys)
• Tenants with infra metadata, VPC CIDRs, app-server IPs, or contract pricing exposed:
- Tech: Atlassian, Databricks, Airbnb, Baidu, LINE, Nylas, Persona, PatSnap
- E-comm & Travel: Booking.com, Shopee, Flipkart, Mercari, ZOZO, AEON, Delhivery, Klook
- Gaming: Capcom, Square Enix, Konami, Bandai Namco, Cygames, Colopl, DMM
- Finance: PayPay, SoftBank, SBI, SB Payment Service, Fujitsu, TOPPAN, Bank of China, China Life
- Crypto: Bitget (said only public trade logs were on it and they already left), Pionex, DigiPlus, NFTscan, Chainbase
• Developer profiles leaked (from a purchased reo.dev table in PingCAP's BigQuery):
- 24,900 personal emails + GitHub/LinkedIn profiles of engineers at Tencent (3,327), Huawei (2,726), ByteDance (2,475), AIG (2,140), Mastercard, Flipkart, and bKash.
If you use TiDB Cloud: rotate your console API keys, DB passwords, and anything you ever pasted into a support ticket.
3. PHP "PHP2Shell" (CVE-2026-109618 & CVE-2026-109619)
Two CVSS 9.2 pre-auth RCEs leaked yesterday ahead of today's 14:00 UTC patch.
Public writeups trace it to a heap Use-After-Free in PHP's native C multipart/form-data session upload-progress handler (ext/session/session.c).
Because C-level multipart parsing runs before line 1 of index.php:
• App auth, Laravel/WordPress middleware, and file_uploads = Off do not stop it.
• Only PHP 8.2–8.5 get official patches today (59% of PHP servers on Shodan are on EOL <= 8.1).
• Until you patch php-fpm: lock php_admin_flag[session.upload_progress.enabled] = off and block unexpected multipart requests at Nginx/Apache/Cloudflare.
Update your browsers, phones and laptops urgently. If you don't know why, search for "eMudhra".
By the way, eMudhra means electronic currency... I think.
Privacy on Android is a joke.
After a while, you'll see half the permissions you denied allowed automatically.
Entire website now loads under 14 kB (compressed).
Why target 14 kB?
Because that means your website can load in a single request to server instead of doing multiple round trips. 14 kB is the limit for whatever underlying internet protocol is running. That's all I know.
Tanuj retweeted
Kalau kamu buka halaman dv-g3b-emudhra.we-have-a-pro… dan tidak muncul error seperti ini (ERR_CERT_REVOKED) maka browser kamu perlu segera di-update.
private keys from 8 intermediate CA certs have been compromised (eMudhra)
Happy "Update everything" day to all my pager-carrying friends
emudhra.we-have-a-problem.co…
🔴 It's live!
tanujnotes.github.io/
Posts like this are so fucking annoying. Engagement farming with zero effort, creativity and shame.
I don't blame anyone who wants the feature to block entire countries.
I've come to a strange realisation - I'm not a big fan of flying cars.
Cars on ground doing insane car stuff? Big fan!
Rockets, drones, supersonic planes and other flying things? Alway exciting!
Adding flight to car form factor? Not for me.
Why? No reason. It is what it is.
Can I say something without everyone getting mad?
I wasn't that thrilled to see the flying Roadster. The "flying" part didn't excite me at all, not sure why.
The coolest part was it sticking to the surface upside down but found out via MKBHD review that it's not a new trick.
I really wish all the effort going into Omarchy Mobile would have gone to GrapheneOS.
A mobile OS is useless for most people if it doesn't have the apps that people need, even with all the AI agents floating around.
Pro Launcher update available! v2.4.3 🥳
• Big news for foldables - you can now see widgets and homescreen side-by-side on the larger display
• Redesigned all 3 Wellbeing features for cleaner look and clarity
• Removed "Display over other apps" permission from Interrupt
1/2
A great philosopher once said:
beautiful explanation. this is 100% happening. xitter.cf/sotak/status/211179423…

















