Omnigent bug lets AI coding agents bypass safety rules
Omnigent is a tool that runs AI coding agents like Claude Code and Codex while trying to keep them inside safety rules. A bug lets a misbehaving or tricked agent slip past those rules and push code to repositories it should not touch, or break out of its assigned work folder.
- Severity
- HighCVSS 3.1 · 7.1
- Fix
- Fixed in 0.3.0Fix recorded on Sep 2, 2026
- Affected versions
- before 0.3.0
- Weakness
- CWE-184
- Exploit likelihood
- 0.30% in 30 daysEPSS, higher than 22% of known flaws
- Affects
- omnigent-ai/omnigent
How it works
Omnigent checks agent-issued shell commands with a parser that only recognizes certain command forms, and when a command is written a way it does not recognize, the tool treats that as no command at all and lets it through instead of blocking it.
What to do
Check the installed omnigent package version with python3 -m pip show omnigent and compare it against 0.3.0. Any versions older than 0.3.0 has the flaw, so update with python3 -m pip install -U omnigent to reach the fixed 0.3.0 release, which closes the parser gaps and makes the safety checks fail closed instead of open.
Run this in the application environment you want to check:
python3 -m pip show omnigentThere is no workaround short of upgrading, since the bug is in the shared command checker itself; update to omnigent 0.3.0 or later and confirm the version afterward.
Technical details
Affected software: omnigent-ai/omnigent
The shared parser in omnigent/policies/builtins/shell.py backs both the GitHub write_repos/write_branches allowlist and the working_dir workspace confinement policy. When it fails to parse a command, the policy evaluator returns None, which the framework treats as abstain, and abstain resolves to allow. Confirmed bypass forms include combined interpreter flags like bash -lc, unlisted wrapper commands such as timeout, nice, setsid, and stdbuf, command substitution, and an unsplit background operator.
Plain git push and env git push are still correctly denied, showing this is missing parser coverage rather than a broken allowlist. Fixed in 0.3.0 by making the gated surface fail closed.
Severity breakdown
- Attack vector Network Requires network access to the vulnerable service
- Attack complexity Low Low complexity under the assessed conditions
- Privileges required Low Attacker needs a basic user account
- User interaction None No victim action needed
- Scope Unchanged Impact stays within the same security authority
- Confidentiality impact High Sensitive data can be exposed with serious impact
- Integrity impact Low Some data can be modified
- Availability impact None No availability impact
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N Open in FIRST.org calculatorReferences
- github.com · v0.3.0 (tag) patch release notes vendor advisory
- github.com · GHSA-7mqg-cx4g-x2rf vendor advisory
- nvd.nist.gov · CVE-2026-62676 vdb entry us government resource
- github.com · PR #389 GitHub Advisory vendor advisory
- github.com · commit 1a05b7b GitHub Advisory vendor advisory
- tenable.com · CVE-2026-62676 third party advisory vdb entry
- cvefeed.io · CVE-2026-62676 third party advisory vdb entry
- osv.dev · CVE-2026-62676 vdb entry