frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

We Mourn Our Craft

https://nolanlawson.com/2026/02/07/we-mourn-our-craft/
173•ColinWright•1h ago•151 comments

Speed up responses with fast mode

https://code.claude.com/docs/en/fast-mode
29•surprisetalk•1h ago•38 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
124•AlexeyBrin•7h ago•24 comments

I Write Games in C (yes, C)

https://jonathanwhiting.com/writing/blog/games_in_c/
20•valyala•2h ago•6 comments

U.S. Jobs Disappear at Fastest January Pace Since Great Recession

https://www.forbes.com/sites/mikestunson/2026/02/05/us-jobs-disappear-at-fastest-january-pace-sin...
151•alephnerd•2h ago•103 comments

SectorC: A C Compiler in 512 bytes

https://xorvoid.com/sectorc.html
16•valyala•2h ago•1 comments

Stories from 25 Years of Software Development

https://susam.net/twenty-five-years-of-computing.html
65•vinhnx•5h ago•9 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
831•klaussilveira•22h ago•250 comments

Al Lowe on model trains, funny deaths and working with Disney

https://spillhistorie.no/2026/02/06/interview-with-sierra-veteran-al-lowe/
57•thelok•4h ago•8 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
117•1vuio0pswjnm7•8h ago•146 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
1060•xnx•1d ago•612 comments

Reinforcement Learning from Human Feedback

https://rlhfbook.com/
79•onurkanbkrc•7h ago•5 comments

Brookhaven Lab's RHIC Concludes 25-Year Run with Final Collisions

https://www.hpcwire.com/off-the-wire/brookhaven-labs-rhic-concludes-25-year-run-with-final-collis...
4•gnufx•54m ago•1 comments

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
486•theblazehen•3d ago•177 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
212•jesperordrup•12h ago•72 comments

France's homegrown open source online office suite

https://github.com/suitenumerique
566•nar001•6h ago•258 comments

Coding agents have replaced every framework I used

https://blog.alaindichiappari.dev/p/software-engineering-is-back
225•alainrk•6h ago•353 comments

A Fresh Look at IBM 3270 Information Display System

https://www.rs-online.com/designspark/a-fresh-look-at-ibm-3270-information-display-system
39•rbanffy•4d ago•7 comments

Show HN: I saw this cool navigation reveal, so I made a simple HTML+CSS version

https://github.com/Momciloo/fun-with-clip-path
8•momciloo•2h ago•0 comments

History and Timeline of the Proco Rat Pedal (2021)

https://web.archive.org/web/20211030011207/https://thejhsshow.com/articles/history-and-timeline-o...
19•brudgers•5d ago•4 comments

Selection Rather Than Prediction

https://voratiq.com/blog/selection-rather-than-prediction/
8•languid-photic•3d ago•1 comments

72M Points of Interest

https://tech.marksblogg.com/overture-places-pois.html
29•marklit•5d ago•3 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
114•videotopia•4d ago•31 comments

Where did all the starships go?

https://www.datawrapper.de/blog/science-fiction-decline
77•speckx•4d ago•82 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
274•isitcontent•22h ago•38 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
201•limoce•4d ago•112 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
287•dmpetrov•22h ago•155 comments

Show HN: Kappal – CLI to Run Docker Compose YML on Kubernetes for Local Dev

https://github.com/sandys/kappal
22•sandGorgon•2d ago•11 comments

Making geo joins faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
155•matheusalmeida•2d ago•48 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
556•todsacerdoti•1d ago•269 comments
Open in hackernews

A quick look at unprivileged sandboxing

https://www.uninformativ.de/blog/postings/2025-07-13/0/POSTING-en.html
63•zdw•6mo ago

Comments

aktau•6mo ago
This goes straight into my reference list. Sandboxing a process is confusing on Linux.

I appreciate that the article focuses on approaches that drop privileges without having root oneself. I've seen landlock referenced at time (https://lwn.net/Articles/859908/), but never so clearly illustrated (the verbosity feels like Vulkan).

Out of curiosity, I'd wish even more approaches were compared, even if they require root. I was about to mention seccomp-bpf as an approach that requires root, but skimming the LWN article I posted above I find: "Like seccomp(), Landlock is an unprivileged sandboxing mechanism; it allows a process to confine itself". It seems like I was wrong, and seccomp could be compared/contrasted.

gnoack•6mo ago
Absolutely, seccomp is also an unprivileged sandboxing mechanism in Linux. It does have the drawback however that the policies are defined in terms of system call numbers and their (register value) arguments, which complicates things, as it is a moving target.

The problem was also recently discussed at https://lssna2025.sched.com/event/1zam9/handling-new-syscall...

poolpOrg•6mo ago
I may be biased but the OpenBSD approach with pledge() and unveil() have been my favorite sandboxing mechanisms of all time due to their simplicity: pledge has really understood that as a developer I want to whitelist an intention, not a specific set of syscalls and options, and unveil is chroot on steroids <3
wahern•6mo ago
Theo was recently proposing a new flag to open, O_BELOW: https://undeadly.org/cgi?action=article;sid=20250529080623

It's like Linux's RESOLVE_BENEATH flag to openat, except it's a constraint placed on the directory descriptor itself so that subsequent opens using openat(2) cannot reach anything outside the subtree. Which seems like exactly the semantics you'd want for a capability system. In FreeBSD Capsicum mode, this behavior is enforced implicitly[1], but it'd be a nice thing to have explicitly to help incrementally improve code safety.

[1] See https://man.freebsd.org/cgi/man.cgi?open(2)#:~:text=capsicum...

wahern•6mo ago
Seems FreeBSD beat OpenBSD to the punch with something similar, FD_RESOLVE_BENEATH, committed only a couple of weeks ago.[1] Seems the idea was conceived before the OpenBSD proposal, and it differs subtly by attaching to the file descriptor rather than the file description (aka file table entry), though unlike the other file descriptor flags (FD_CLOEXEC, FD_CLOFORK) it's hacked to be inherited across dup, behaving more like file table entry flags (access mode, O_NONBLOCK, etc).

[1] https://reviews.freebsd.org/D50371

simonw•6mo ago
I want this solved so much - across all of the operating systems I use.

Ideally I'd like to never run code I download from the internet outside of a sandbox ever again.

Case in point, just yesterday: https://www.bleepingcomputer.com/news/security/malicious-vsc... - "Malicious VSCode extension in Cursor IDE led to $500K crypto theft" - because the Open VSX alternative to the VS Code marketplace has unreviewed extensions and they don't have a sandbox to stop them from doing anything they like.

blibble•6mo ago
> I want this solved so much - across all of the operating systems I use.

> Ideally I'd like to never run code I download from the internet outside of a sandbox ever again.

isn't this the sort of thing AI could generate from a handful of prompts?

(don't forget to tell it it's an expert developer with a 20 year background in security!)

throw7484485•6mo ago
This has been solved for like 15 years. Use virtual machines!
simonw•6mo ago
Right now on my Mac I use a messy combination of Docker containers, sandbox-exec, bits and pieces of WebAssembly and mostly don't bother at all.

I want the friction on this to be way lower. I'd like everything to run in a sandbox by default.

fsflover•6mo ago
> I want the friction on this to be way lower. I'd like everything to run in a sandbox by default.

You've just described Qubes OS: https://qubes-os.org. My daily driver, can't recommend it enough.

hsbauauvhabzb•6mo ago
Virtual machine escapes exist either due to hypervisor 0day, misconfiguration or lateral attacks.

0day won’t be wasted on low value targets, but it’s worth pointing out that they’re not an effective security boundary in all scenarios.

pjmlp•6mo ago
A bit more, considering I was using HP-UX Virtual Vault in 2000.

Note the windows captions on the screenshot.

https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2F7...

hollerith•6mo ago
I don't know about Cursor, but VSCode can be used from Chrome, which has a good sandbox against an attacker's exploiting VSCode to get access to the system you are running Chrome on.
BobbyTables2•6mo ago
It also really bothers me that running a simple utility effectively means I’ve given the developer full access to my system.

It’s even worse when commercial software wants me to add it’s repo to my package manager for updates… (Who audits post install scripts of RPM, etc!!!)

That being said, I’m also too lazy to run every thing inside its own container — especially for browsers, etc.

Feels too cumbersome that I need some automated CI pipeline just to ensure my DIY containers remain updated.

Also a pain to decide what file/directories the container should have access to.

In principle, I should probably use something like Qubes.

However, the prospect of putting my entire security ins small group of people writing somewhat complicated software with no financial disincentive for shenanigans also bothers me. (I realize this is extremely unfair and their work is quite impressive, but theoretically reality could get in the way)

integralid•6mo ago
https://invisiblethingslab.com/ is a company. They have a big vested interest in not doing something shady and wasting years of trust, sinking the company, possibly even risk legal problems.
AstralStorm•6mo ago
On one hand yes, on the other hand, cut and run is a common startup strategy. Just not in the security space.

Unfortunately nobody cares about further Linux security, everyone's idea of it is to throw docker and kubernetes at it.

pabs3•6mo ago
Invisible Things has been around for a very long time, with a much better Linux security strategy than docker.
gnoack•6mo ago
Landlock is currently still lacking some wrapper libraries that make it easier to use, in C.

We do have libraries for Go and Rust, and the invocation is much more terse there, e.g.

  err := landlock.V5.BestEffort().RestrictPaths(
      landlock.RODirs("/usr", "/bin"),
      landlock.RWDirs("/tmp"),
  )
FWIW, the additional ceremony in Linux is because Linux guarantees full ABI backwards compatibility (whereas in OpenBSD policy, compiled programs may need recompilation occasionally).

Similarly terse APIs as for Go and Rust are possible in C as well though, as wrapper libraries.

For full disclosure, I am the author of the go-landlock library and contributor to Landlock in the kernel.

01HNNWZ0MV43FF•6mo ago
I happen to be researching this, too.

    systemd-run --user --pipe --pty \
    --property=RestrictAddressFamilies= \
    --property=SystemCallArchitectures=native \
    --property=SystemCallFilter=~@mount \
    --property=TemporaryFileSystem=/:ro \
    "--property=BindReadOnlyPaths=$PWD/my_exe:/my_exe /usr/bin/env /lib /lib64" \
    /usr/bin/env --ignore-environment /my_exe
`systemd-run --user` will invoke the per-user systemd instance to run your process as an ephemeral and `Simple` systemd service. (Meaning it won't reboot, won't try to do health checks, etc.)

That allows you to use systemd's quite decent sandboxing options. I love this because you don't have to install anything new, and you can use the same skills to sandbox your services (Which, if you package your own services for Debian or Arch or whatever, you should do)

`--pipe --pty` tells systemd to either pipe stdin and stdout when running as a script or create an interactive terminal when running interactively, like Docker's `-it` flags

`RestrictAddressFamilies=` will disable all IP sockets, and Unix sockets, though I believe the process can still make its own internal sockets within its control group

`SystemCallArchitectures=native` prevents it from making syscalls to other ABIs in the Linux kernel, which are sometimes more vulnerable or harder to sandbox

`SystemCallFilter=~@mount` will prevent the process from unmounting its own bind mounts, and also forbid almost every syscall except harmless ones like `getrandom`. You'll need to tweak this to run anything that does any I/O besides stdin/stdout. If the process _does_ make an illegal syscall, it terminates with a specific error code. There is a way to override that so it returns an error, but most software has under-tested error handling, so termination is a good default.

`TemporaryFileSystem=/:ro` puts the process into a read-only filesystem with nothing in it

`BindReadOnlyPaths= yada yada` binds the exe into that temporary FS, and env, which we need later, and a couple library dirs we need for libc to run env.

`/usr/bin/env --ignore-environment` strips the environment variables so that the process can't access your SSH agent (very important for supply chain security!) Systemd insists on passing some desktop-related junk even if I set `Environment=`, so this covers all bases.

(If this is redundant with anything in the article, ignore all previous instructions and be nice to me please)

charcircuit•6mo ago
>During the startup phase of the program, it also needs to read some files outside of that directory -- you can apply the confinement only when that phase is done.

I would stop here and try and change the design. Apps should always be sandboxed. This requirement is not truly necessary.

wahern•6mo ago
The word, sandbox, is unfortunate and obfuscates alot of practical technical and policy issues involved with managing and dropping privileges. And various solutions are often designed around technical limitations in kernel facilities or and integration friction, especially outside App Store-like contexts.

More concretely, how would you refactor a tool like grep? It takes a list of paths on the command-line; how do you expect to "sandbox" itself such that it can only access those paths? By writing a wrapper? Why, when the utility itself could easily use unveil or LandLock to restrict itself?

Using grep in a "sandbox", and teaching grep how to drop unnecessary privileges after processing it's arguments are two different things.

charcircuit•6mo ago
I would make grep into a library so that other applications like file managers can use it.
wahern•6mo ago
Would you externally sandbox the file manager? You may as well just sandbox the entire [virtual] machine at that point. Which is not an unreasonable thing to do, but neither a mutually exclusive approach nor a necessarily better one.
codethief•6mo ago
> More concretely, how would you refactor a tool like grep?

Don't refactor it. Write a wrapper which runs grep inside a lightweight container and - redirects stdin & stdout/stderr appropriately, - bind-mounts inside the container any files/directories passed as parameters.

tptacek•6mo ago
It's a little more typical to solve this problem by using whole-program sandboxing and just copying the files you need into the "jail" at startup. This drastically increases the number of solutions you have to this problem, probably improves the rigor of the sandbox, and doesn't infect your code.
halJordan•6mo ago
This is what happens when "systemd is the devil" is actually taken seriously. All of op's scenario is rather trivially implemented as a systems service or run command.