Hacker Newsnew | past | comments | ask | show | jobs | submit | winterqt's commentslogin


> I think OpenBSD actually does support static libc though.

How does that work, with syscalls being unable to be called except from the system’s libc? I’d be a bit surprised if any binary’s embedded libc would support this model.


For static executables, “the system’s libc” is of course not a thing. To support those, OpenBSD requires them to include an exhaustive list of all addresses of syscall instructions in a predefined place[1].

(With that said, OpenBSD promises no stability if you choose to bypass libc. What it promises instead is that it will change things in incompatible ways that will hurt. It’s up to you whether the pain that thus results from supporting OpenBSD is worth it.)

[1] https://nullprogram.com/blog/2025/03/06/


> How does that work, with syscalls being unable to be called except from the system’s libc?

OpenBSD allows system calls being made from shared libraries whose names start with `libc.so.' and all static binaries, as long as they include an `openbsd.syscalls' section listing call sites.


Can't you just have one syscall(2) to rule them all? https://man7.org/linux/man-pages/man2/syscall.2.html


You can. There is a thread-unsafe implementation here <https://gist.github.com/oguz-ismail/72e34550af13e3841ed58e29...>. But the listing needs to be per system call number, so this one only supports system calls 1 (_exit) and 4 (write). It should be fairly easy to automatically generate the complete list but I didn't try it.


Sorry I got mixed up with FreeBSD: https://codeberg.org/ziglang/zig/issues/30981 (original github link has more information)


Not all of libc is syscalls. E.g. strlen() is zib libc but open() goes to system libc.


Good point. C's "freestanding" mode, analogous to Rust's nostd, does not provide any functions at all, just some type definitions and constants which obviously evaporate when compiled. Rust's nostd not only can compute how long a string is, it can unstably sort a slice, do atomic operations if they exist on your hardware, lots of fancy stuff but as a consequence even nostd has an actual library of code, a similar but maybe less organized situation occurs in C++. Most of the time this is simply better, why hand write your own crap sort when your compiler vendor can just provide an optimised sort for your platform? But on very, very tiny systems this might be unaffordable.

Anyway, C doesn't have Rust's core versus std distinction and so libc is a muddle of both the "Just useful library stuff" like strlen or qsort and features like open which are bound to the operating system specifics.


Won’t IDEA automatically index/execute some Gradle code when possible? As soon as you execute an arbitrary binary/script from the project directory, the isolation of the JVM doesn’t matter.


This particular vulnerability relied upon passing the require function to a scope to allow the loading and running of arbitrary code. This is what I tend to call a blacklist approach. You're saying in this sandbox certain features can't be used because they will allow escape.

The alternative is a whitelist approach. Instead of disallowing dangerous features you're enabling only the features you need.

So a build system like Gradle or Maven (same thing really) has a limited set of primitives it is allowing access to. It's not loading, say, the entire JVM and all the Java core libraries and then listing all those you can't use.

You see the difference? If nothing else, the blacklist approach is going to fail when the virtual machine (or whatever) adds a new API call upstream and it's added without intent to the sandbox by simply doing an update where nobody has thought to disable it.

Another way of looking at this is Gradle isn't being compiled into Java bytecode and run in the same environment as the IDE (sandboxed or otherwise). That is inherently riskier.


Looks like some were automod and some just went into modqueue, only one was actually removed by mods.


Supposedly the ARM ThinkPads are alright on Linux.


Not really. The drivers are not upstream, so it only works well on specially made Ubuntu spins that carry out of tree patches and random binary blobs. It is really still quite a mess at the moment.


> It is really still quite a mess at the moment.

Integration, testing, and support are all expensive. Right or wrong, that's a reason why if a laptop "just works" (like a Mac, Windows Thinkpad, or a Chromebook), it probably has proprietary binaries.

Also, if you aren't paying for the OS (via the hardware it's coupled with), you can't expect the OS to have the benefits of tight hardware integration.

Even Framework laptops use proprietary boot firmware, and they've been pretty clear that they only provide support for Ubuntu and Fedora, not the alphabet soup of other Linux desktop distros.


Nonsense, the AMD drivers are fully upstream, and they 'just work'.


AMD drivers alone do not make a computer that "just works".


rubygems.org will still be operated by Ruby Central, though, so you still have to trust them. Given the state of affairs, this is less than ideal, but it’s probably a better outcome than nothing changing.


Ruby Central has literally ALWAYS hosted rubygems.org.


Is changing your password to at least stop {some of, all} the 2FA requests not helping?


It’s account recovery, not 2FA, my bad



Thank you for the swift and candid response, this has to suck. :/

> The author appears to have deleted most of the compromised package before losing access to his account. At the time of writing, the package simple-swizzle is still compromised.

Is this quote from TFA incorrect, since npm hasn’t yanked anything yet?


Quote is probably added recently. Not entirely correct as I have not regained access; nothing happening to the packages is of my own doing.

npm does appear to have yanked a few, slowly, but I still don't have any insight as to what they're doing exactly.


This isn’t the same website as https://news.ycombinator.com/item?id=44560662 — clearly a different product with the same name, though it seems the signup button doesn’t even do anything?


> clearly a different product with the same name

The main link goes to the original website.

Feels like a spam site, pumping out websites for anything that becomes relevant. Maybe it'll eventually swap out to the actual scam.

EDIT: Also, the fake as fuck numbers. It's been out for a day!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: