CVE-2026-91987: atomic-agents-stack cost-guardrail bypass in batch cost estimation

CVE-2026-91987 · Severity: medium · CVSS 6.5 · Published 2026-09-15

atomic-agents-stack is a Python library for building AI agent systems that enforces daily spending caps on language model API calls. A flaw in the cost estimation logic returns zero cost for unknown or custom models, allowing attackers to bypass daily budget limits by configuring parallel batch operations with unrecognized model identifiers, potentially causing runaway cloud spending.

Technologies: atomic-agents-stack (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-91987 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-91987 being exploited in the wild.
How severe is CVE-2026-91987?
Medium severity, with a CVSS score of 6.5, published 15 September 2026.
Which products and versions are affected?
atomic-agents-stack (PyPI) ECOSYSTEM:introduced=0,fixed=1.1.0.
Is there a fix for CVE-2026-91987?
Yes. atomic-agents-stack (PyPI): upgrade to 1.1.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-91987 attacked?
It is attacked over the network.
Am I affected by CVE-2026-91987?
Check whether you run atomic-agents-stack (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • atomic-agents-stack (PyPI): upgrade to 1.1.0 or later
    pip install "atomic-agents-stack>=1.1.0"

Technical details

The vulnerability is a resource exhaustion issue (CWE-770) in the _estimate_batch_cost function within agent.py. The function uses PRICING.get(model, {}) to look up per-model output costs, returning 0.0 for any model absent from the hardcoded pricing table. Downstream logic in _check_batch_reservation treats zero reservations as valid and skips the cost guardrail check entirely. An attacker who can control the model parameter in parallel batch operations can pass unknown model identifiers, causing cost guards to be bypassed. This is particularly dangerous because the sibling _estimate_dream_cost function correctly implements fallback pricing, making this a clear logic error. The vulnerability affects all versions up to and including 1.0.0; version 1.1.0 and later patch the issue by using PRICING.get(model, _costs._fallback_pricing()) instead.

Affected products

  • atomic-agents-stack atomic-agents-stack before 1.1.0

Identifiers

  • CVE-2026-91987
  • GHSA-j659-8xh6-5pq5

Timeline

  • 2026-06-10: disclosed: GitHub Security Advisory GHSA-j659-8xh6-5pq5 published
  • 2026-09-15: advisory: CVE-2026-91987 assigned and published on NVD
  • 2026: patched: Fix available in version 1.1.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.