HNHacker News
TopNewBestAskShowJobs

rfoo

2,493 karma · joined February 24, 2017

about
submissionscomments
rfoo··on UCSD: Large Language Models Pass the Turing Test
I think the most interesting result [0] is, compared to our current benchmarks, on which scaling law is showing diminishing returns, what they did managed to tell apart large language models (Llama 405B, GPT-4.5) from not-so-large LMs.

This could be really interesting if it wasn't due to trivial f-up (e.g. difference in inference speed).

[0] Assuming the paper isn't flawed, haven't read it thoroughly yet.

rfoo··on UCSD: Large Language Models Pass the Turing Test
I still believe that larger models are better at covering the long tail. Our benchmarks are saturated, but actual model capability is not.
rfoo··on Taming the UB Monsters in C++
All good questions.

> is not modifying those code to use STL containers much cheaper

That's right. However, I'd add that most exploited bugs these days (in high-profile targets) are temporal memory safety (i.e. lifetime) bugs. The remaining spatial (out of bound) bugs are mostly in long forgotten dependencies.

> Are you referring to the idea of shadow stacks in general or a particular implementation of them?

The idea. Shadow stack (assuming perfect hardware assisted implementation) is a good backward-edge control flow integrity idea, and ruins one of the common ways to take over $rip (write a ROP chain to stack), but that's it. Besides making exploitation harder, both forward-edge and backward-edge CFI also kill some bugs. However, IMO we are long past non-linear stack buffer overflow days, once in a while there may still be news about one, but it could be news because it is an outlier. Hence, compared to CFI, the bugs shadow stack kills are pretty irrelevant now.

> JIT bugs leading to arbitrary script execution in JS engines

Not necessarily JIT bugs. Could also be an UAF and people went a bloody path to convert it to an `ArrayBuffer` with base address = 0 and size = 0x7FFFFFFFFFFFFFFF accessible from JavaScript. Chrome killed this specific primitive. But there's more, I'm not going to talk about them here.

You may have a slight confusion here. In case of browser renderer, people starts with arbitrary JavaScript execution, the goal here is to do what JavaScript (on this page!) can't do, via memory corruption - including, but not limited to executing arbitrary native code. For example, for a few years, being able to access Chrome-specific JS APIs to send arbitrary IPC message to browser process (out of renderer sandbox), is one `bool` flag on .bss away from JavaScript. If we managed to get arbitrary R/W (that is, can read / write all memory within the renderer process, within JavaScript, see my ArrayBuffer example above), we just change it and run our sandbox escape against browser process in JavaScript, who needs that native code execution?

Or, if you do want native code execution. For a few years in V8 the native code WASM gets compiled to, is RWX in memory, so you just use your arb R/W to write that. You can kill that too, but then people starts coming up with bizarre tricks like overwriting your WASM code cache when you load it from disk and before making it R/X, and there're enough fishes in the pool that you likely can't patch em'all.

> I mean, if you are after RCEs, don't CFI and shadow stacks halt the program instead of letting the CPU jumping to the injected code?

Yeah. But as I said, nowadays people usually use temporal memory safety bugs, and they want arbitrary R/W before they attempt to take over $rip. Don't get me wrong, this is because of the success of CFI and similar mitigations! So they did work, they just can't stop people from popping your phones.

> can you name one widespread C++ exploit that:

I just google'd "Chrome in the wild UAF" and casually found this in the first page: https://securelist.com/the-zero-day-exploits-of-operation-wi...

I assume "in the wild exploited" fits your "widespread" requirement.

Granted, it's five years old, but if you are okay with non-ITW bugs I can come up with a lot of more recent ones (in my mind).

This is an UAF. So it would not have happened in a memory safe language. While back then the exploited chrome.exe may not have enabled CFG (it was enabled late 2021 IIRC), I don't see how the exploit path could be blocked by CFI.

rfoo··on Taming the UB Monsters in C++
My two cents, I'm wearing my exploit writer's hat, but my current day job is SWE on legacy/"modern-ish" C++ codebases.

> Enable STL bounds checking using appropriate flags

This rarely helps. Most of the nice-to-exploit bugs were in older codes, which weren't using STL containers. Or they are even just write in C. However, if enabling these flags do not hurt you, please still do as it does make non-zero contribution.

> Enable mitigations like CFI and shadow stacks.

Shadow stack is meh. CFI helps a bit more, however there's some caveats depending on which CFI implementation you are talking about, i.e. how strong is it, for example, is it typed or not? But in best case it still just makes the bug chain one bug longer and maybe completely kills some bugs, which isn't enough to make your exploits impossible. It just raises the bar (that's important too though). It also depends on what the specific scenario. For example, for browser renderer without sandbox / site-isolation etc, CFI alone makes almost no impact, as in this case achieving arbitrary R/W is usually easier than taking over $rip, and it's obvious you can do data-only attack to have UXSS, which is a serious enough threat. On the other hand, if it's a server and you are mainly dealing with remote attackers and there's inherently no good leak primitive etc, various mitigations soup could make real difference.

So, all in all, it's hard to tell without your project details.

> How much of the "70% CVE" statistic is relevant to such a C++ codebase?

Uh, I'd guess, half or more of that. But still, it just raises the bar.

rfoo··on MCP server for Ghidra
Besides functional equivalence, a significant part of the value in neural decompilation is the symbol (function names, variable names, struct definition including member names) it recovered. So, if the LLM predicted "FindFirstFitContainer" for a function originally called "find_pool", is this correct? Wrong? 26.333% correct?
rfoo··on MCP server for Ghidra
I've been thinking on how to build a benchmark for this stuff for a while, and don't have a good idea other than LLM-as-judge (which quickly gets messy). I guess there's a reason why current neural decompilation attempts are all evaluated on "seemingly meaningless" benchmarks like "can it recompile without syntax error" or "functional equivalence of recompilation" etc.
rfoo··on Qwen2.5-VL-32B: Smarter and Lighter
tbh the "short the stock market" story is pretty silly, it wasn't predictable at all. but yeah, the guy got to do whatever he want to do now.
rfoo··on Gemini 2.5
Now that Noam is back I'm a little bit more optimistic.
rfoo··on 4o Image Generation
ByteDance has been working on autoregressive image generation for a while (see VAR, NeurIPS 2024 best paper). Traditionally they weren't in the open-source gang though.
rfoo··on Gemini 2.5
Ha, I still remember that super hilarious "You are under 18, so you should not write C++, as it is unsafe..." log from ... a year ago?
rfoo··on Qwen2.5-VL-32B: Smarter and Lighter
> Right now DeepSeek models hosted in china are having very high latency.

If you are talking about DeepSeek's own hosted API service. It's because they deliberately decided to run the service in heavily overloaded conditions and have very aggressive batching policy to extract more out of their (limited) H800s.

Yes, for some reason (the reason I heard is "our boss don't want to run such a business" which sounds absurd but /shrug) they refuse to scale up serving their own models.

rfoo··on 63 Chinese Cuisines: The Complete Guide (2024)
In what respect is US one single large country? Texas and California feels as different as Shandong and Shanghai. And not sure if a flame war will happen if I try to compare Hawaii and Taiwan :p
rfoo··on Is it safe to travel to the United States with your phone?
Because they want to advertise that they CAN break into phones loaded with GrapheneOS. Just not the latest version. Likewise they "announce" that they can't unlock BFU iPhone-s running latest iOS, and the real message is "we can unlock just slightly older iPhone-s and you may expect us to be able to unlock current version after few months".
rfoo··on The real failure rate of EBS
> that every disk will experience a fatal failure or a disconnection at least once a month

When? I vaguely remember that it used to be like that, but I haven't seen nearly as many failures on Aliyun for the last few years.

rfoo··on Reviving the modprobe_path Technique: Overcoming search_binary_handler() Patch
There is CONFIG_STATIC_USERMODEHELPER that disables the sysctl you mentioned and actually make modprobe_path read-only.
rfoo··on DeepSeek focuses on research over revenue in contrast to Silicon Valley
If anything, it sounds more like an "EA working as intended" story.
rfoo··on Reverse engineering OpenAI code execution to make it run C and JavaScript
> why would they be running such an old Linux?

They didn't.

OP misunderstood what gVisor is, and thought gVisor's uname() return [1] was from the actual kernel. It's not. That's the whole point of gVisor. You don't get to talk to the real kernel.

[1] https://github.com/google/gvisor/blob/c68fb3199281d6f8fe02c7...

rfoo··on ESP32 Undocumented Bluetooth Commands: Clearing the Air
tl;dr whichever system using an ESP32 as a bluetooth adapter may also just run arbitrary code on the ESP32 itself over the same interface. Commands have to be issued from the host system, not from the air.

This sounds like... a good feature? There are indeed some scenarios where doing so poses a security risk. But most of the time I do want to be able to run arbitrary code on e.g. my WiFi dongle when I'm in control. I know FCC is not a fan of this idea though.

rfoo··on Apple M3 Ultra
For decode, MoE is nice for either bs=1 (decoding for a single user), or bs=<very large> (do EP to efficiently serve a large amount of users).

Anything in between suffers.

rfoo··on DeepSeek Open Source FlashMLA – MLA Decoding Kernel for Hopper GPUs
> Still looks compute-bound to me.

H100 has 3.3TB/s HBM bandwidth on paper, and ~1000TFLOPS bf16 compute on paper. That's 1:300. 0.6GB vs ~2GFLOPS is 1:3. Tell me how is this compute bound?

(also, your number, even after accounting for GQA, is still off. You usually can't store kvcache in fp8.)

rfoo··on Speedrunners are vulnerability researchers, they just don't know it yet
> the vast majority of speedrunners are "only" practicing and replicating exploits demonstrated by others

So they are red teamers :p

rfoo··on Fire-Flyer File System from DeepSeek
Yeah, I don't want to do this either. This is a super special case, after exploring alternatives with our researchers it's unfortunately needed. As for record-of-death, we made sure that we do serialize all rng state and have our data pipeline perfectly reproducible even when starting from checkpoint.

Building a system for serving read-only data at NVMe SSD speed (as in IOPS) took surprisingly few effort, and is mostly enough for training data. Kudos to DeepSeek who decided to spend extra effort to build a full PFS and share it.

rfoo··on Fire-Flyer File System from DeepSeek
They did this back in their trading firm days, and...

Imagine that you have a sequence of numbers. You want to randomly select a window of, say, 1024 consecutive numbers, a sequence, as input to your model. Now, say, you have n items in this sequence, you want to sample n/c (c is a constant and << 1024) sequences in total. How to do fixed shuffle?

The key is, we have overlap in data we want to read. If we brute force fixed shuffle and expand, we need to save 1024/c times more than original data.

This isn't useful for LLMs, but hey, wonder how it started?

rfoo··on Fire-Flyer File System from DeepSeek
Ah, makes sense. Sadly RDMA isn't that fast for now, or at least commercial RNICs/switches don't :( Once you left your host in data center network, everything counts in microseconds.
rfoo··on Fire-Flyer File System from DeepSeek
> What makes the workload somewhat special is

I'll add that latency also doesn't matter that much. You are doing batched data loading for batch n+1 on CPU when GPUs are churning batch n-1 and copying batch n from host memory at the same time.

So as long as your "load next batch" doesn't run for like >1s it would be fine. But one single "load next batch" on one worker means thousands (if not more) random read.

rfoo··on Fire-Flyer File System from DeepSeek
That's been illegal since May 1995 (before that China had six working days week).

Does it really matter whether it's illegal or not, if there is no enforcement? Pinduoduo (in other name, Temu) has been doing 70 hours week since they started. Yes, they are still doing it right now.

rfoo··on Fire-Flyer File System from DeepSeek
Huh? What kind of RDMA has a completion latency of 20 nanoseconds? It's more like 5 microseconds.

I agree that a lot of "modern" storage stack is way too slow though, tried to find a replication-first object storage for crazy-fast random read in small number of objects last year and found none.

rfoo··on ForeverVM: Run AI-generated code in stateful sandboxes that run forever
I don't think so. This looks like to be using an actual VM instead of container tech.
rfoo··on ForeverVM: Run AI-generated code in stateful sandboxes that run forever
Check out why Togerther.AI acquired CodeSandbox.
rfoo··on DeepGEMM: clean and efficient FP8 GEMM kernels with fine-grained scaling
I agree. Gamers are cursing Nvidia right now tho, and sadly university labs doing serious research on gaming cards is also a past :(
← PreviousPage 6 of 34Next →