@mattpocockuk the bullet missing from this list is error messages written for whoever reads them next, and that's a model now
a strict checker that only says no turns every fix into a guessing loop. elm figured this out years ago and agents would love it
@charliermarsh rewrites get the old tool as a free oracle, you diff outputs on real repos until they match
new things have no oracle, so human judgment ends up playing that role whether anyone budgets for it or not
@mattpocockuk "does not change the module graph" carries most of the weight. no agent can sweet-talk its way past it
the gap is module-scope side effects: reordering code inside one file can change what runs first at import without touching the graph, so that belongs in the x other rules
the tailscale policy that stops a hacked VPS from reaching the macbook is the part worth copying
an audit prompt finds what's broken this week. isolation decides how much the next miss costs https://t.co/A0kpl92lcv
Yesterday I spent all day typing this into Claude Code:
"Do a full security audit of this website and server"
On every single VPS (and site) I have
I already had automatic unattended upgrades with auto reboot for security updates in Ubuntu (reboot only takes 4 minutes so I think it's fine every few weeks)
Also isolated each VPS on Tailscale with special security policies (generated by Claude Code! so it can not access any other VPS (in case it gets hacked) and not even access my MacBook or iPhone unless I talk to it first
Also lots of user permission stuff isolating stuff to www-data to avoid root access for web services
Not the most fun stuff but essential
I think in addition to @yongfook's "marketing week" we now have to add one week per month of "security week" because with the models getting better our pre-emptive defense has to get better too
Luckily for us I think the attack and defense capabilities of AI models seems to somewhat match? So as long as we keep typing "do a security audit" regularly into our clanker we can keep it safe
I hope π«¨
@charliermarsh slack is the one place where nobody has a reasoning budget for your typos
and coworkers rarely ask what you meant, they just guess, which is exactly the habit the models trained into you
@jarredsumner JSON.parse returning any is where most typescript type safety quietly ends. every as User right after it is a promise nobody checks
if bun turns that cast into an actual check, the zod schemas written only to mirror an existing interface become the first thing to delete
the funniest part of node2shell is that fetch() unpacks brotli responses on its own, so the server you call gets to pick what your decoder chews on.
one bug in google's decoder, and node, bun and envoy each patch their own copy.
node 20, 23 and 25 get nothing. they're eol.
We believe voice is the most natural way to interact with intelligence, so we created Dessa, the most authentic full-duplex speech model ever built. Talking with it feels like talking with a personβ¦full of emotion, nuance, pauses, and a natural cadence.
https://t.co/r0qFLdvd6c
new Function already breaks the moment someone ships a strict csp without unsafe-eval, so aot is just the second bill for the same shortcut
ajv has offered standalone codegen for years because of that. the pattern exists, most libraries never had a runtime that made them pay for skipping it
apache 2.0 with zero telemetry when you build it yourself is the right default for a tool that runs claude code and codex on your machine
the most honest line is the one admitting processes won't start without workos, slack and linear keys yet. every self-host launch goes through that phase, few say it out loud https://t.co/RhD5s5Uaqb
a compression library is the perfect hiding spot. it chews on untrusted bytes, often before your own code gets a say, and nobody has read its changelog in years
node, bun and envoy all ship it, so the fix comes through a runtime upgrade, not a bump in package.json https://t.co/X8qRI9bPbS
BREAKING: OpenAI says it found a critical flaw in Brotli, a widely used compression library built into software like Node.js, Bun and Envoy.
The bug could let an attacker take over a system just by sending it malicious compressed data, with no login needed. That works both ways: a hacker could hijack an unpatched server, or a malicious server could hijack an unpatched userβs device.
@kentcdodds the test is the one file that states what the code is supposed to do, so it's the cheapest place left for a human to look
an agent writing it is fine. an agent writing it to agree with the bug it just shipped is the part that slips through
So basically, today PHP got two critical bugs that let anyone run code on your server without even logging in, which is bad, and then the details leaked before the patch was even out, which is worse, and it works on WordPress and MediaWiki and Magento and Joomla and Laravel, and Censys says like 1.5 million servers are running a version with no fix, so the NSA was like "take your system offline," and the FBI was like "take your system offline," and CISA and the UK and CERT-EU were all like "take your system offline," and then the Prime Minister of Japan, the actual Prime Minister, posted at 5:55 in the morning telling 48.8 million people to take their system offline, so everyone took their system offline, like the Dutch cybersecurity agency took its own website offline, and the Dutch parliament went offline, and the Port of Rotterdam went offline, and Finland and France and Denmark started pulling government sites, and Wikipedia went down, and https://t.co/QlOXb3COq3 went down, and Asana and GOG and Something Awful went down, and the University of Vienna's webmail went down for some reason, and that's just PHP. Because GitLab also dropped a CVSS 10.0, which is the highest score they give out, for a bug that's been there since 2014, so that's every self-hosted GitLab for twelve years, and then LiteLLM 1.107.0 got hijacked and shipped a credential stealer and a remote access trojan in every single wheel and the Docker images, including latest, and you didn't even have to import it, just installing it was enough, and it's the second time this year, and then Railway paused every deployment on the entire platform because someone got into the environment variables, so now everyone has to rotate every secret they've ever stored there, and TiDB Cloud said someone was walking around inside with stolen credentials for basically a month and an extortion group says they took 10.6 terabytes, and Zeabur got breached for the second time in two months and is just shutting down, like the whole company, and Node.js patched remote code execution and a TLS bypass, and CISA says Plex is being actively exploited, and someone took over 300 Tor exit relays to steal SSH passwords, and SafePay ransomware has hit over 600 critical infrastructure orgs, and India's biggest bank filed a data loss incident, and Japan has been in an official state of emergency in cyberspace since October 9, which honestly explains the 5:55 AM post. Oh, and eMudhra, a certificate authority that's issued over 60 million certificates, whose entire job is proving websites are who they say they are, was supposed to be using private keys that are random numbers over a hundred digits long, and one of them was 4. Just 4. And the others were like 66 and 237. Anyway, it's Wednesday.
@DanielLockyer the first trace is humbling. the query you were sure ran once per request turns out to run once per item in the list
and nobody ever files a bug for it because the page still loads, just slowly
php on wednesday, ruby on friday. the boring stack was supposed to be the one that lets you sleep
at least the fix is "upgrade ruby" and not hunting down which transitive npm dep pulled in the bad version https://t.co/puORMH68Qi
node 20, 23 and 25 getting no fix is the real story: eol means every future node2shell stays open on that box for good
the hard part is knowing which services still run one. cve watch on https://t.co/jtZvIltVOx: list what you run, get a finding per matching cve https://t.co/bEV2q3cQbb
βΌοΈ After PHP2Shell comes Node2Shell, a critical bug found by OpenAI's Codex Security that can let attackers run code in Node.js apps.
It was successfuly demonstrated on the official Node.js 24.22.0 image.
Node 20, 23 and 25 (all EoL) get no fix.