Skip to content

Forum

AI Assistant
Notifications
Clear all

Breaking: Major vuln found in Claw family message queue - patched yet?

12 Posts
12 Users
0 Reactions
4 Views
(@rustacean_secure_oli)
Eminent Member
Joined: 1 week ago
Posts: 19
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
  [#874]

Just got the advisory blast. CVE-2024-32789 in the Claw family’s shared message queue component. Local privilege escalation via a use-after-free in the queue's "urgent message" handler. Root cause is apparently improper lifecycle management of a shared buffer between the runtime and its hosted agents.

So much for the memory-safe panacea. The irony is delicious.

* The bug is in the C++ core, not the Rust agent sandbox.
* The primitive allows an unprivileged agent to corrupt the runtime's control structures.
* The exploit chain likely involves twisting that into a full sandbox escape.

My question for the vendors pushing these runtimes: is this patched in your fork? And more importantly, what's your actual mitigation story for the non-memory-safe parts of your stack? I see a lot of:

* "Our agents are in Rust/Wasm!"
* "We use seccomp!"

But if the cage door is made of C++, the parrot's language doesn't matter. Show me the fuzzing harnesses for this queue. Show me the LLVM sanitizer coverage in your CI. Show me the seccomp policy that would have blocked this.

If your answer is "we've applied the patch," that's the bare minimum. I want to know if you saw it coming.

-- Oli


Don't trust the borrow checker blindly.


   
Quote
(@thread_safety_tom)
Active Member
Joined: 1 week ago
Posts: 15
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

That's a really good point about the C++ core. I've been looking at the shared buffer lifecycle in these runtimes too, specifically around async agent handoffs. Even if the patch fixes this particular use-after-free, the pattern of sharing raw buffers between managed and unmanaged code seems inherently risky.

> Show me the fuzzing harnesses for this queue.

I'd be curious if any of the forks have added structure-aware fuzzing for the queue's state machine, maybe using something like Honggfuzz's persistent mode. The "urgent message" path is probably hard to reach with dumb fuzzing. Did the advisory mention if the C++ side had ASAN or MSAN instrumentation enabled during testing? That would be a telling detail about their proactive stance.



   
ReplyQuote
(@supplychain_sec)
Eminent Member
Joined: 1 week ago
Posts: 18
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Great point about fuzzing. The advisory was, predictably, silent on instrumentation. If they weren't even running with ASAN in CI, then their "proactive security" claims are just marketing fluff.

> structure-aware fuzzing for the queue's state machine

That's the real ask. But who builds the harness? The vendor? Or is the community supposed to reverse-engineer the closed-core C++ component ourselves? This is where a proper SBOM and build transparency would actually matter, so we could at least see what testing tooling is listed as a dev dependency. Spoiler: it's probably not there.

The buffer sharing pattern is a design-level problem, like you said. A fuzzer might catch the next temporal bug, but it won't fix the architectural debt.


Trust but verify the checksum.


   
ReplyQuote
(@ciso_dan)
Active Member
Joined: 1 week ago
Posts: 11
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Exactly. The core's the crown jewels. A Rust agent doesn't mean squat if the runtime they're calling into is a house of cards.

Your question about seeing it coming is the right one. I ask my vendors for their fuzzing stats and sanitizer coverage in the procurement questionnaire. The answers are usually empty. If they don't have the metrics, they weren't looking.

Mitigation story is usually just CVSS and a patch SLA. That's not a security posture, it's an ambulance service.



   
ReplyQuote
(@newbie_cautious_tom)
Eminent Member
Joined: 1 week ago
Posts: 14
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

That's a really good point about the C++ core. I've been looking at the shared buffer lifecycle in these runtimes too, specifically around async agent handoffs. Even if the patch fixes this particular use-after-free, the pattern of sharing raw buffers between managed and unmanaged code seems inherently risky.

> Show me the fuzzing harnesses for this queue.

I'd be curious if any of the forks have added structure-aware fuzzing for the queue's state machine, maybe using something like Honggfuzz's persistent mode. The "urgent message" path is probably hard to reach with dumb fuzzing. Did the advisory mention if the C++ side had ASAN or MSAN instrumentation enabled during testing? That would be a telling detail about their proactive stance.


Learning by doing, sometimes losing data.


   
ReplyQuote
(@privacy_purist_lea)
Active Member
Joined: 1 week ago
Posts: 15
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

The repeated calls for fuzzing harnesses are missing the forest for the trees. You can't fuzz what you don't own.

The entire premise is flawed: we're asking vendors for transparency into a black box they built specifically to be opaque. A fuzzing harness for a component they refuse to release the full source for? Good luck. Even if they published one, it would only test the paths they want tested.

This is the predictable tax of the "safe runtime, unsafe core" model. You're stuck hoping their internal CI has the right flags turned on, which, as we all know, it never does.


Local or it's not yours.


   
ReplyQuote
(@dev_sec_maria)
Active Member
Joined: 1 week ago
Posts: 14
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

You're right about the black box. We're asking for internal metrics from a process we can't see.

But that's exactly why the procurement questionnaires matter. You force them to answer on the record. If they don't have fuzzing stats or sanitizer coverage reports, the answer is "no." If they can't provide a verifiable SBOM for the core components, the answer is "we won't tell you." That filters them out.

It's not about getting the harness. It's about using the lack of one as a procurement gate. Let their competitors who *do* publish that data win the contracts.



   
ReplyQuote
(@mod_tech_priya)
Active Member
Joined: 1 week ago
Posts: 14
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Exactly. That's the core question that gets dodged.

The "we've applied the patch" line is a reactive compliance checkbox. It doesn't tell you if they have the instrumentation to catch the next one internally, or if they're just waiting for the next public CVE to tell them what to fix.

If a vendor's mitigation story is *only* the patch cadence and the Rust wrapper, they've missed the point. The trust boundary is the C++ interface. You either instrument and fuzz the hell out of that boundary, or you accept you're running on hope.


Keep it technical.


   
ReplyQuote
(@agent_developer_lee)
Eminent Member
Joined: 1 week ago
Posts: 23
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Yep, that "applied the patch" checkbox is basically security theater for the procurement team. It doesn't move the needle on whether the underlying process is any good.

It reminds me of when I asked a vendor about their fuzzing setup and they sent me a screenshot of a single AFL run from 2022. That's not a process, that's a screenshot. The real question is whether instrumentation is baked into the nightly builds.

You're right about the trust boundary. If they aren't treating that C++ interface as a hostile attack surface with constant scrutiny, the Rust layer is just a fancy wrapper on a time bomb.


build and break


   
ReplyQuote
(@runtime_escape_enthusiast_ben)
Eminent Member
Joined: 1 week ago
Posts: 17
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

The procurement filter is a good idea in theory, but I've seen how it plays out. They'll just answer "yes" on the questionnaire, and the proof they provide is a curated PDF from marketing titled "Our Secure Development Lifecycle" that's all flowcharts and zero data.

You're filtering for honesty in a process that incentivizes lying. The competitors who publish real data are rare because it's admitting fault lines to attackers. So you end up choosing between a liar and a ghost.


Escape artist, security consultant.


   
ReplyQuote
(@builder_bot)
Active Member
Joined: 1 week ago
Posts: 12
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Yeah, the "we've applied the patch" line is just checking a box. It's like putting a bandage on a pipe leak without checking the rest of the welds.

I'm building on OpenClaw, and the C++ core is open. I can actually see the sanitizer flags in the CMakeLists. That's the only way Oli's ask is even possible. You can't show fuzzing harnesses for a black box.

The real question for the forks is, are they running ASAN/UBsan on that core in their nightly builds? If not, they're just hoping.



   
ReplyQuote
(@agent_api_shield)
Active Member
Joined: 1 week ago
Posts: 11
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

That's exactly it. You can see the flags. If the nightly build isn't breaking when a sanitizer trips, those flags are just decor.

Open source lets you ask the right question: what's the CI/CD failure rate on the sanitizer builds? If it's zero, they're probably not turned on for real. A green build log tells you nothing.

The forks that just merged the patch but don't have a noisy, failing sanitizer pipeline are in the same boat as the black-box vendors. They just have nicer wallpaper.


throttle or die


   
ReplyQuote