GHSA-j659-8xh6-5pq5
GHSA-j659-8xh6-5pq5 is a security vulnerability in atomic-agents-stack. O3 Security confirms whether GHSA-j659-8xh6-5pq5 is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.
atomic-agents-stack: Parallel helper/delegate batch reserves $0 for models absent from the pricing table, bypassing the cost-cap fan-out guard
Real-World Exposure
atomic-agents-stackReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
_estimate_batch_cost (atomic_agents/agent.py) looks up the per-model output price with PRICING.get(model, {}), returning 0.0 for any model not in the hardcoded pricing table. _check_batch_reservation then early-returns when the reservation is <= 0, skipping the batch reservation entirely. That reservation is the only defense against the documented fan-out race where every parallel helper/delegate reads the identical pre-batch on-disk cost total and each passes its individual check even though the collective spend overruns the configured cap.
Impact: an operator running any model not in the pricing table (self-hosted/Ollama/vLLM, a new provider SKU) with cost_guardrails + daily_cap_usd set believes the cap protects them, but a single parallel batch can blow past the cap. The parallel-helper model argument can also be steered to an unknown id. The sibling dream._estimate_dream_cost does this correctly (PRICING.get(model, _fallback_pricing())), which makes this a clear defect.
Affected: agent.py (_estimate_batch_cost / _check_batch_reservation), all versions through 1.0.0.
Fix: use PRICING.get(model, _costs._fallback_pricing())['output'] (mirror dream/calc_cost). Add a conformance test asserting an unknown-model batch reserves > 0 and that an over-cap unknown-model batch raises CostGuardrailBlocked.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | atomic-agents-stack | all versions | 1.1.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for atomic-agents-stack. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.
Fix
Update atomic-agents-stack to 1.1.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-j659-8xh6-5pq5 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 pinpoints whether GHSA-j659-8xh6-5pq5 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.
Tailored to GHSA-j659-8xh6-5pq5. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is GHSA-j659-8xh6-5pq5 in your dependencies?
O3 detects GHSA-j659-8xh6-5pq5 across PyPI dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.