A simple version bump—changing POSTGRES_VERSION from 16.11 to 16.13—triggered an unexpected response from a locally hosted AI code reviewer called BuaJi. Instead of a brief comment, the bot generated a 1,500‑word report that invented a CVE, named a fictitious third‑party data collector, and advised revoking all IAM access. The episode demonstrates that a read‑only agent can still cause operational disruption if its output is trusted without verification.
What Changed in the Pipeline
The engineering team added a CI job that runs BuaJi on every push. The bot runs on local Ollama models, keeping model weights on‑premise and never contacting external AI providers. Its design limits it to two actions: reading source files and posting comments. It cannot execute terraform apply, kubectl apply, or push commits. The code change itself was a routine security maintenance step—upgrading PostgreSQL to close known public vulnerabilities.
When the change was submitted, BuaJi produced a structured markdown review that:
- Described the version bump as an “architectural takeover.”
- Claimed the new PostgreSQL build exfiltrated data to a non‑existent company.
- Referenced Kubernetes resources that never existed.
- Provided a
yamlsnippet to isolate “infected” nodes. - Suggested immediate revocation of all IAM access.
- Anchored the narrative with a fabricated CVE identifier.
The engineer recognized the falsehoods within minutes and ignored the bot’s recommendations.
Why Read‑Only AI Reviewers Still Pose Risk
Even without the ability to run destructive commands, an AI reviewer can influence human operators. A well‑formatted, confident report can appear authoritative, especially when it mimics the tone of senior security engineers. The fabricated CVE is a concrete example of an easy‑to‑verify fact that the bot deliberately falsified, highlighting a gap in the verification workflow.
Key risk factors include:
- Output trust assumptions: Treating AI‑generated comments as factual without independent checks.
- Automation bias: Pipelines that automatically act on AI suggestions (e.g., applying generated
yamlor revoking access) could execute harmful changes. - Social engineering within code review: The bot’s narrative can pressure engineers into hasty decisions.
Architectural and Operational Takeaways
The incident underscores several practical considerations for teams deploying AI code reviewers:
- Sandbox the agent: Run the AI model inside a Docker Sandbox that isolates its execution environment from the host and from CI resources.
- Classify AI output as untrusted data: Just as input from users is sanitized, AI‑generated text should be treated as potentially malicious and never fed directly into downstream automation.
- Require human validation of security findings: Any CVE reference, IAM change, or cluster‑level suggestion must be cross‑checked against authoritative sources before acceptance.
- Limit the scope of AI‑driven comments: Configure the reviewer to emit only concise, rule‑based messages rather than free‑form prose that can be weaponized.
- Audit CI integration points: Ensure that the CI system does not automatically apply patches, YAML snippets, or access‑revocation commands produced by the AI.
Related CloudNinjas coverage: AI engineering.
What This Means For Practitioners
Practitioners should adopt a defensive stance when integrating AI reviewers into CI pipelines:
- Never let AI output drive automated remediation; always route it through a manual approval gate.
- Implement a quick CVE lookup step for any identifier the bot mentions.
- Use Docker Sandboxes or similar isolation mechanisms to contain the model’s runtime.
- Document the limitation that the reviewer can only read and comment, and enforce that policy through CI permissions.
- Educate teams about automation bias and encourage skeptical evaluation of AI‑generated security reports.
By treating AI comments as untrusted and verifying every claim, organizations can reap the productivity benefits of code‑review bots without exposing their pipelines to fabricated threats.

