CVE-2026-62676: Omnigent shell-command parser policy bypass in _shell.py

CVE-2026-62676 · Severity: high · CVSS 7.1 · Published 2026-08-21

Omnigent is an autonomous AI agent framework that uses security policies to confine agent commands to approved operations (e.g., restricting Git pushes to allowed repositories and confining file access to a workspace). A flaw in the shell-command parser causes it to fail open: when the parser doesn't recognize a command syntax, it returns no decision, which the system interprets as approval. An attacker or misaligned agent can bypass repository and branch restrictions via command wrappers (timeout, nice, setsid), shell metacharacters (&, &&, ||, |), and command substitution, enabling exfiltration of code or secrets to unauthorized repositories or escape from workspace confinement.

Technologies: omnigent (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-62676 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-62676 being exploited in the wild.
How severe is CVE-2026-62676?
High severity, with a CVSS score of 7.1, published 21 August 2026.
Which products and versions are affected?
omnigent (PyPI) < 0.3.0, ECOSYSTEM:introduced=0,fixed=0.3.0.
Is there a fix for CVE-2026-62676?
Yes. omnigent (PyPI): upgrade to 0.3.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-62676 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-62676?
Check whether you run omnigent (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

  • omnigent (PyPI): upgrade to 0.3.0 or later
    pip install "omnigent>=0.3.0"

Technical details

The vulnerability is an incomplete policy implementation (CWE-184) in the shared shell-command parser (`policies/builtins/_shell.py`). When a gated command uses syntax the parser does not recognize—such as combined interpreter flags (`bash -lc "..."`), unlisted command wrappers (`timeout`, `nice`, `setsid`, `stdbuf`), command substitution (`$(...)` or `` `...` ``), or unsplit shell operators (`&`, `&&`, `||`, `|`)—the parser returns `None` instead of a policy decision. The policy evaluator then treats `None` as "abstain," which defaults to ALLOW. This bypasses the two core guardrails: the GitHub repository/branch allowlist (in `github.py`) and workspace confinement (in `working_dir.py`). Attack preconditions are minimal: the agent must be instantiated with policy enforcement enabled, but no special authentication is required. Patch v0.3.0 is available and should implement fail-closed semantics, canonicalization of known wrappers, and recursive parsing of shell metacharacters and command substitutions.

Affected products

  • omnigent-ai omnigent < 0.3.0

Identifiers

  • CVE-2026-62676
  • GHSA-7mqg-cx4g-x2rf
  • PYSEC-2026-3873

Timeline

  • 2026-06-29: disclosed
  • 2026-09-02: patched: patch version 0.3.0 released
  • 2026-09-02: advisory: GitHub Advisory Database published

References

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