HN user

emilburzo

1,517 karma

https://emilburzo.com

Posts48
Comments400
View on HN
blog.emilburzo.com 29d ago

GPS spoofing teleported me to Peru, mid-flight

emilburzo
4pts4
blog.denic.de 1mo ago

Final DNS Outage of 5 May 2026

emilburzo
3pts0
blog.emilburzo.com 6mo ago

Running Claude Code dangerously (safely)

emilburzo
351pts258
trufflesecurity.com 2y ago

(The) Postman Carries Lots of Secrets

emilburzo
4pts0
nvd.nist.gov 2y ago

Chrome Critical CVE-2024-2883: Use after free in ANGLE

emilburzo
1pts0
snyk.io 2y ago

Runc process.cwd and leaked fds container breakout (CVE-2024-21626)

emilburzo
3pts0
aws.amazon.com 2y ago

A new, independent sovereign AWS cloud in Europe

emilburzo
4pts1
buffer.com 3y ago

State of Remote Work 2023 – Buffer

emilburzo
5pts0
skerritt.blog 3y ago

Over-engineering my document storage system with Paperless-ngx

emilburzo
2pts0
trusted-cgi.reddec.net 3y ago

Lightweight self-hosted lambda/applications/CGI/serverless-functions engine

emilburzo
1pts0
www.garmin.com 3y ago

Data Insights from 10k Garmin InReach SOS Incidents

emilburzo
2pts0
agsi.gie.eu 3y ago

Aggregated Gas Storage Inventory – Europe

emilburzo
31pts8
www.randorisec.fr 4y ago

A Crack in the Linux Firewall

emilburzo
264pts64
www.businessinsider.com 4y ago

The teen who tracks jets agreed to stop monitoring Mark Cuban's flights

emilburzo
1pts0
blog.emilburzo.com 5y ago

Reverse engineering the Nest home/away API

emilburzo
80pts20
notasatellite.com 5y ago

Not a Satellite

emilburzo
2pts0
github.com 6y ago

ConnectIQ app for processing Garmin Varia radar data and counting vehicles

emilburzo
1pts0
www.youtube.com 6y ago

Winter, All Season and Summer Tires Tested at 0c, 2c, 6c, 10c, 15c

emilburzo
2pts0
news.ycombinator.com 8y ago

Ask HN: How do you access the database from maintenance jobs?

emilburzo
1pts0
news.ycombinator.com 8y ago

Ask HN: How do you monitor your email inbox placement?

emilburzo
5pts1
blog.joegreen.pl 8y ago

Lesser–Known Java Syntaxes

emilburzo
3pts0
nvd.nist.gov 9y ago

UDP remote code execution in Linux <4.5

emilburzo
22pts4
bugs.chromium.org 9y ago

Ntfs-3g: modprobe is executed with unsanitized environment

emilburzo
2pts0
cloud.google.com 9y ago

Using Google BigQuery to explore weather effects on NYC

emilburzo
4pts0
www.openwall.com 9y ago

OpenSSH 6.8-6.9 PTY local privilege escalation exploit (CVE-2015-6565)

emilburzo
39pts3
cloud.google.com 9y ago

Google Infrastructure Security Design Overview

emilburzo
317pts52
bugzilla.redhat.com 9y ago

Docker: insecure opening of file-descriptor allows privilege escalation

emilburzo
161pts22
blog.cloudflare.com 9y ago

Manage Cloudflare records with Salt

emilburzo
3pts0
news.ycombinator.com 9y ago

Ask HN: Anyone from Facebook infra/email around?

emilburzo
1pts0
news.ycombinator.com 9y ago

Ask HN: What's considered a normal length for the hiring process?

emilburzo
2pts1

Interesting, so the spoofing is only active during attacks? That explains the short duration.

I am wondering what changed though, since this hasn't happened before in the previous 4 years. More spoofing installations maybe? Higher radio transmitter power?

I'm also very curious, do you have any technical mitigations for this to be able to use your GPS devices? Or is it now just a fact of life?

Sorry for what you are going through.

It doesn't have any credentials inside the VM though, not even for git, so it could commit but not push. And I manually review/commit/push outside of the VM since I don't want to just dump stuff without reading it first.

But good call-out if someone uses a different workflow.

I'm still happy with my containment setup[1][2] on linux. The only risk that I see from the article would be the "Exfiltration through an approved domain" one. But in the VM there's (by design) nothing to exfiltrate besides the source code itself, which is less valuable these days.

The major benefit for me with this setup is that the agent can do all of the dev things that I can (install packages, build/run docker images, ...) which is a way faster loop than me trying it manually and then reporting back to the agent.

[1] https://blog.emilburzo.com/2026/01/running-claude-code-dange...

[2] https://news.ycombinator.com/item?id=46690907

Romania reportedly has unlimited for 4€ but I don't know which operator.

Orange Yoxo is the only one which has actually-unlimited, all the others have a fine-print somewhere with "up to X GB/month, then bandwidth is severely throttled".

I'm using the 4.9€ plan for a mountain webcam[1] and they have been true to their word, no throttling so far.

[1] https://ignis.maramures.io/

What Is OAuth? 5 months ago

I've been happily using oauth2-proxy[1] with nginx as an extra layer of authentication to prevent situations where e.g. home-assistant had an unauthenticated RCE.

It's pretty neat since you can have one oauth instances for all virtual hosts, e.g.:

  server {
      [...]   
     
      location /oauth2/ {
          proxy_pass       http://127.0.0.1:8469;
          proxy_set_header Host                   $host;
          proxy_set_header X-Real-IP              $remote_addr;
          proxy_set_header X-Scheme               $scheme;
          proxy_set_header X-Auth-Request-Redirect $request_uri;
      }
  
      location / {
         auth_request /oauth2/auth;
         error_page 401 = /oauth2/sign_in;
  
         [...]
      }
  }

[1] https://github.com/oauth2-proxy/oauth2-proxy

Hmm, perhaps I'm missing something, so let's go through it step by step and see where the disconnect is:

- There's a cloned 'my-project' git repo on the base OS

- The 'Vagrantfile' is added to the project

- 'vagrant up', 'vagrant ssh' and claude login is run inside the VM

At this stage, besides the source code and the Claude Code token (after logging in), there are no other credentials on the VM: no SSH keys, no DB credentials, no API tokens, nothing.

There is also no need to add:

- SSH keys or GitHub tokens: because git push/pull is handled outside the VM

- DB credentials: because Claude can just install a DB inside the VM and run the project migrations against that isolated instance, not any shared/production database

API tokens can definitely be a problem if you need external service integration. But that's an explicit opt-in decision, you'd have to deliberately add those credentials to the Vagrantfile or sync them in. At that point, yes, you need proper token scoping and permissions.

I tried this approach for a while, but I really wanted it to be able to do anything (install system packages, build/run Docker containers, the works).

With these powers there's a lot less back-and-forth with me running commands, copying the output, pasting it to Claude, etc.

I'm sure you've had the case where you had to instruct someone to do something (e.g. playing tech support with family, helping another engineer, etc). While it helps the other person learn, it feels soooo slow vs just doing it yourself :) And since I don't have to teach the agent, I think this approach makes sense.

This was also the direction I was initially headed, but then I realized I wanted one-VM-per-project so it can really do anything it wants on the complete VM. So the blast-from-the-past-Vagrant won because of the Vagrantfile + `vagrant up` easiness.

I totally understand, Vagrant and VirtualBox are quite a blast from the past for me as well. But besides the what-are-the-odds bug, it's been smooth sailing.

VMs with 3D acceleration

I think we don't even need 3D acceleration since Vagrant is running the VMs headless anyways and just ssh-ing in.

Incus (on Linux hosts)

That looks interesting, though from a quick search it doesn't seem to have a "Vagrantfile" equivalent (is that correct?), but I guess a good old shell script could replace that, even if imperative can be more annoying than declarative.

And since it seems to have a full-VM mode, docker would also work without exposing the host docker socket.

Thanks for the tip, it looks promising, I need to try it out!

Good point. For me, that was intentional, since all my projects are in git I don't care if it messes something up. Then you get the benefit of being able to use your regular git tooling/flows/whatever, without having to add credentials to the VM.

But if you need something more strict, 'config.vm.synced_folder' also supports 'type rsync', which will copy the source folder at startup to the VM, but then it's on you to sync it back or whatever.

Back in the day when Direct Connect[1] was a thing, and we all had insane speeds in the metropolitan area (but not so great outside of that), I used to run a DC hub. Which due to said speeds had mostly people that were close by, geographically speaking, and the interactions felt so much more relevant, probably because of the "third thing" you mention, the common interest/background.

So I've also been thinking for a while now: how can that style of community be recreated? There's of course the chicken-and-egg problem until you have traction, but also things like: how big should the community be, geographically? The same size in the US vs EU likely encompasses quite different amounts of people. Should it be anonymous or real identities? Should history be viewable by new members or should it be ephemeral? And so on.

Anyway, interesting prototype, I hope you get some traction!

[1] https://en.wikipedia.org/wiki/Direct_Connect_(protocol)

+1 here, with the latest Chrome v3 manifest shenanigans, the Pushbullet extension stopped working and the devs said they have no interest in pursuing that (understandable).

I always wanted a dedicated binary anyway, so 1 hour later I got: https://github.com/emilburzo/pushbulleter (10 minutes vibe coding with Claude, 50 minutes reviewing code/small changes, adding CI and so on). And that's just one where I put in the effort of making it open source, as others might benefit, nevermind the many small scripts/tools that I needed just for myself.

So I share the author's sentiments, before I would have considered the "startup cost" too high in an ever busy day to even attempt it. Now after 80% of what I wanted was done for me, the fine tuning didn't feel like much effort.

If you have another machine with a SSD or at least a fast-ish HDD and want to give it another go, you could try running k3s with an external datastore (e.g. postgres).

That's the setup I've been using on 3 x rPi since 2021 and I'm super happy with it as I can host all my own personal projects, some OSS ones (changedetection, n8n, etc), even longhorn for distributed storage and still have capacity left -- and this with just microSDs (to be fair, A1s, but still).

I just tested it on one of my nemeses: PDF bank statements. They're surprisingly tough to work with if you want to get clean, structured transaction data out of them.

The JSON extract actually looks pretty good and seems to produce something usable in one shot, which is very good compared to all the other tools I've tried so far, but I still need to check it more in-depth.

Sharing here in case someone chimes in with "hey, doofus, $magic_project already solves this."

This is exactly what I did for my DIY solution, it's quite amazing how far you can get with some SMS parsing.

Initially I was still missing quite a lot of transactions, as there isn't a SMS for non-CC payments, but then I realized I could just grab the information from the 2FA confirmation, as it had all the important details.

I'm not so good on the frontend, so I'm still using redash to build charts, dashboards and alerts, but it's fine for keeping an overview.

Long-term I would still like to switch to parsing the statement PDF from the bank, especially since there's an option to receive them automatically at the end of the month, but I'm dragging my feet on that one, as parsing tables from PDF is surprisingly difficult. Even though the actual text is embedded in the PDF, getting it in the correct layout has proven impossible so far. Or maybe I'm just missing some piece of the puzzle?

Nothing spectacular, I just want to have a display by the door that shows various things I'd like to check on before leaving, like: which windows are open, outside temperatures, etc.

I don't want a battery because:

- although every X months is quite ok, I don't want the hassle of remembering to charge it (first world problems, I know)

- but I also have a fear of leaving devices with a battery plugged in for a long time / having to monitor for battery swelling or other abnormalities

I already have a classic battery-powered display which shows temperature info from some sensors and it's really convenient, but annoying when the battery is dead right when you need the info. Even if that only happens every X months.