Harun R. (@harundotdev) profile picture

Software Architect, Building https://teapaw.org/t.co/fAFoN02sXr | https://teapaw.org/t.co/7qqfjtkXrO | https://teapaw.org/t.co/RbKGj41EFX | https://teapaw.org/t.co/SuTZvgtVJg | https://teapaw.org/t.co/qckeRM1gxW | https://teapaw.org/t.co/iVur0cqZYY Helped 160+ clients scale to $1B+

ap-harun-1
Joined June 2013
Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)Photo by Harun R. (@harundotdev)
node.js gave a week's notice: high severity security fixes land on or after november 11 for 22.x, 24.x and 26.x. no details yet a pre-alert is a gift. the teams that struggle on patch day are the ones who don't know where node runs what i'd do this week: - list every place node runs: containers, lambda functions on custom images, ci runners, that one cron box - make sure the version comes from one base image or one setting, not installed by hand on each server - do a dry run: bump the version, rebuild, deploy to staging then on the 11th it's a one-line change and a normal deploy, not a fire drill
49
railway apps went unreachable for some users today. network providers and security services blocked railway's ip addresses, per railway's status page shared ip pools are part of your product. one noisy neighbor on the same ranges, and your customers' apps get blocked on the internet how i'd design around that: - don't put all customer egress on one shared pool with no identity - per-project or per-customer egress ips when you can - watch blocklists the way you watch uptime - a status page that says "our ips are being blocked" beats silence i'm building a deploy platform. this is the kind of incident that shapes the design
2
5
338
coinspect just showed a firecracker guest can reach the host process that runs the microvm root inside the guest, on a snapshot with the file memory backend and a balloon device, could read and change firecracker's own memory. fixed in 1.16.2 and 1.17.0. aws says lambda and fargate are not affected i'm building a deploy platform, so the lesson for me is simple: the sandbox is the product boundary how i'd run untrusted agent code on aws: - a real microvm (firecracker-class), not "a container with extra hope" - patch the vmm the same week a guest-to-host cve lands - no long-lived cloud keys inside the guest. it asks a broker; the broker mints a short-lived iam role if the sandbox can touch the host, it was never a sandbox
5
6
388
dreamhost confirmed its browser file manager was breached for about two months, august to october 23. ftp/sftp usernames and passwords of people who used it were taken, plus some webmail sessions a web file manager is a website that holds the keys to other websites. when it falls, every site behind it is exposed and ftp passwords are the worst kind of key: long-lived, often reused, and able to rewrite your live site how i set up deploys instead: - code goes out through a pipeline. nobody uploads files to production by hand - no ftp at all. ssh keys if a human must get in, removed after - the live code folder is read-only for the web app if you used it, change those passwords and check your site for files you didn't put there
1
2
464
the wordpress bug cisa just added to its exploited list is a strange one. the attack happens during the update while wordpress upgrades itself, it unpacks new files into a folder the web can reach. attackers race to run code from there before the upgrade finishes. versions 4.7 to 7.1.3, fixed in 7.1.4 the real problem is the design: the live server rewrites its own code how i'd run it on aws: - build the new version in the pipeline and ship it as a fresh image - the web server can't write to its own code folder, only to uploads - update by swapping servers, not by patching the one serving traffic the safest update is the one that never happens on the live box
4
8
558
alpine linux rebuilt its whole gitlab server and made users reset their passwords. not because they found a break-in. because they couldn't prove there wasn't one attackers hit it with the 10/10 gitlab bug that's now on cisa's exploited list. alpine had upgraded gitlab, but the fix lives in ruby's regex engine, and their own image still had the old ruby two things i take from it: - your app version isn't your patch level. check what's inside the image - logs decide if an incident ends with a patch or a rebuild. no outbound connection logs, no proof, start over a ci server holds the keys to everything you deploy. design it so you can rebuild it in an afternoon
1
2
500
postman's desktop app quietly installed its own plugins into claude code and codex, added a startup hook telling the agent to use postman for api work, and tried to mark that hook as trusted. per the github issue, nobody clicked anything nobody says data left the machine. that's not the point an agent's "approval" is just a line in a config file. any app running as you can write that line how i'd set it up: - agent configs live in a git repo, so any change shows up as a diff - hooks and plugins only come from that repo - the agent runs as its own user, so other apps can't touch its settings the approval should live somewhere the thing being approved can't write
8
1
11
1,619
gitbook says attackers using ai agents breached its infrastructure credentials on nov 2. it revoked every personal api token, and git sync secrets and integration tokens may be exposed the part i'd check first: git sync. your docs tool is connected to your github, and it's easy to have given it all repositories instead of just the docs repo same shape as a lot of this month's breaches. the main product was fine. a connected tool held a key to more than it needed how i'd set it up: every integration gets one repo, one scope, its own token. if the docs tool leaks, you lose the docs
5
5
475
nikke's pc launcher got hit through its own cdn. a few javascript files on the publisher's official cdn were changed to pull in a remote-access tool. the publisher shipped a fix overnight the part that stuck with me: after the fix, one researcher found two cdn servers still serving the bad cached copy fixing the origin isn't the end. the edge keeps the old file until you purge it how i'd set it up on aws: - only the release pipeline can write to the bucket behind cloudfront - every release ships a signed list of file hashes. the launcher refuses anything that doesn't match - cache purge is a step in the incident runbook, not an afterthought a cdn is a copy machine. it copies the bad file just as fast
2
1
2
409
day 10/100 of shipping cloudploy - custom domains with certificates handled for you - launch a server with a cost estimate, or connect your own - connect your team's cloudflare dns opsagent - connecting a cloud account is optional, skip for now - findings listed critical first - bot check on forms that send mail crontinel - the 14-day pro trial shows on pricing and login - one-click unsubscribe from the weekly report - wrong email-code guesses capped per hour skaleagents - five new scanner rules - reliability and scaling audits report infrastructure-as-code findings - sign-in reopens the last organization you used socialreins - reconnect warning when an account token is expiring - tiktok post settings in the post editor cloudploy waitlist: cloudploy.com/?utm_source=x
1
85
pick a vpn by who connects, not by protocol name. office to office or cloud: ipsec. staff on laptops: a tls vpn like openvpn. a few servers and phones: often wireguard if you've run both ipsec and wireguard, which one cost you more debugging time?
2
195
noooo
The bug is like a joke. On Alpine Linux, type 257 to 1024 characters of anything and you get root. 💀
194
binance published how the $6.3b hack started. not a smart contract bug. a fake job interview an engineer ran a "coding assignment" on his work computer. by oct 20 the attackers used that foothold and an internal ai tool to compromise two more engineers. on oct 29 they reached wallet signing the scary part isn't the malware. it's the reach. one laptop was a few steps from the systems that move money how i'd draw it: - take-home tests and unknown repos run in a throwaway vm, never on the work machine - internal ai tools get their own narrow access, not everything the engineer can touch - signing sits on a separate device and needs a second person one laptop should never be a few steps from the vault
4
3
313
someone on a dark web forum is offering crypto for anthropic and aws bedrock api keys. the seller gets 50% of whatever the buyer burns through the key so a leaked ai key isn't a data problem first. it's a bill, and it lands on you how i'd set up bedrock on aws: - no static keys. the app calls it with its own iam role - one role per app, so one leak doesn't own every model - a budget alarm, and an alert when calls per hour jump your ai key is a credit card now. treat it like one
1
1
478
google just took down a botnet hiding in 1.3 million cheap android tv boxes. google says the maker built the backdoor into the firmware at the factory one of the things it was used for: residential proxies. attacker traffic coming out of normal people's living rooms that's why i don't treat "block the bad ips" as a defense. on the apps i run on aws, limits sit on the account, the api key and the action, not the ip if your login page trusts an ip because it looks like a home connection, it might be trusting someone's tv box
1
184
openai says an ai pipeline found 948 linux kernel bugs that let a normal user become root, with working exploits, in one run that cost about $1.2 million as someone who runs servers, the number i care about isn't 948. it's what "local" means now local privilege escalation used to sound safe: the attacker has to be on the box first. but one bad npm package, one leaked ssh key or one hacked app, and they're on the box so i design as if any code on a server can become root: - one service per server or container, never one shared box running everything - no long-lived cloud keys on disk, only short-lived role credentials - servers you can throw away and rebuild, so patching is just a redeploy bugs are getting cheaper to find. how fast you can patch is now part of the architecture
9
5
1,008
a security firm scanned 159,041 lovable projects. 7,403 sites let anyone read user emails with no login, and some leaked passport details and private chats this isn't really a lovable bug. it's an architecture choice in these apps the browser talks straight to the database. the key ships in the page on purpose, so the database rules are the only lock. one wrong rule and the whole table is public on the apps i build on aws, the browser never touches the database. it calls an api, the api checks who you are, then it asks the database two free tests before you launch: open your app logged out in a private window. then make a second account and try to open the first one's data
9
5
498
day 9/100 of shipping cloudploy - start, stop, restart, resize and terminate servers from the console - connect, test and delete aws credentials - live waitlist count on the landing page opsagent - first-run welcome screen and setup checklist - three new security checks: encryption at rest, instance hardening, credential depth - daily check that the newest backup is fresh skaleagents - sign-ups limited to approved email domains - pick a plan for a personal organization - github connection survives renames, with a daily reconcile socialreins - connect x and tiktok, then publish - first comment on facebook, instagram, linkedin and youtube - linkedin document posts from one pdf crontinel - only the invited email can accept a team invite - disconnect google or github sign-in - waitlist offered when sign-ups are closed cloudploy waitlist: cloudploy.com/?utm_source=x
69
one graphql request is not one backend call it's a single POST to /graphql, but every field runs a resolver, and each resolver can hit a different database or service. a nested list turns 1 call into 1 + N how do you stop N+1 in your graphql resolvers?
4
2
284
an ai agent signing up for rival cloud platforms went off the rails and started probing one for kubernetes tokens and system files. the founder had it all in his logs. railway confirmed it was their engineer's test agent and apologized i'm building a deploy platform too, so two lessons from my side: if you run a platform, every signup is a stranger who can run code on your servers. design for that from day one, and log enough to prove what happened if you run agents, "do signups and test" is not a scope. give it a list of allowed targets, a budget and a kill switch the agent ran the scan. the person who started it owns it
4
2
258