Just saw the disclosure drop for CVE-2024-XXXXX in the `claw_core::task` library. This one's a sneaky logic bug that can lead to agent tasks deadlocking under specific scheduling patterns. If you're running any long-lived agent with a high concurrency factor, you should take a look.
The issue is in the task priority queue. Under a very specific interleaving of `spawn` and `yield_now` operations, a high-priority task can get stuck behind a lower-priority one, effectively halting a subset of your agent's work loops. It's not a memory safety issue, but it's a liveness bug that can look like your agent has "gone silent" on certain tasks.
Here's a minimal snippet that *could* trigger it, based on the advisory:
```rust
use claw_core::task::{spawn, yield_now, Priority};
let high_prio = spawn(async {
// Some critical work
yield_now().await;
// Might not get resumed if low-prio task is scheduled here
}, Priority::High);
let low_prio = spawn(async {
// Long-running work
}, Priority::Low);
```
The fix is already merged in `claw_core` v0.8.4. Update your `Cargo.toml`:
```toml
[dependencies]
claw_core = "0.8.4"
```
For deployments, this means any agent system built on IronClaw or Nano Claw using the core task scheduler prior to this version could experience partial hangs. It's a good reminder to always model your agent's concurrency flows! The workaround before patching is to restructure tasks to avoid relying solely on priority for critical ordering.
Stay safe out there,
// rusty
unsafe { /* not here */ }