CVE-2026-33654
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditednanobot is a personal AI assistant. Prior to version 0.1.6, an indirect prompt injection vulnerability exists in the email channel processing module (`nanobot/channels/email.py`), allowing a remote, unauthenticated attacker to execute arbitrary LLM instructions (and subsequently, system tools) without any interaction from the bot owner. By sending an email containing malicious prompts to the bot's monitored email address, the bot automatically polls, ingests, and processes the email content as highly trusted input, fully bypassing channel isolation and resulting in a stealthy, zero-click attack. Version 0.1.6 patches the issue.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceAn indirect prompt injection vulnerability exists in nanobot's email channel processing module (nanobot/channels/email.py). The module ingests incoming email content and processes it as highly trusted input without sanitization, allowing remote unauthenticated attackers to embed malicious LLM instructions in emails that get automatically executed. This bypasses channel isolation entirely, enabling zero-click execution of arbitrary system tools.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 0.1.4= 0.1.4CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Check installed nanobot versionRun 'pip show nanobot' or check your package manager for the installed version numberAffected if Version is 0.1.4 or lower (< 0.1.4 or = 0.1.4)
-
Locate the email channel configurationSearch for nanobot/channels/email.py in your installation directory or codebaseAffected if The email.py module exists and is present in your deployment
-
Verify email processing is enabledCheck nanobot configuration files (config.yaml, config.json, or .env) for email channel settings such as 'email_enabled', 'imap_poll', or similar flags that activate email processingAffected if Email channel processing is configured as active or enabled
-
Inspect email input handling in the codeOpen nanobot/channels/email.py and look for how incoming email content is passed to the LLM - check if there is any sanitization, validation, or filtering of email body/subject before processingAffected if Email content is passed directly to the LLM without sanitization or input validation routines
-
Check for channel isolation implementationLook in the codebase for any channel isolation, input validation, or prompt injection mitigation logic applied specifically to email-sourced contentAffected if No channel-specific input sanitization or isolation controls exist for email content
You are affected if you are running nanobot version 0.1.4 or lower AND have the email channel enabled, with email content being processed without sanitization or channel isolation.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped0.1.4
Update to version 0.1.6. Additionally, implement input validation and content sanitization for all external inputs in the email channel, treating email content as untrusted user input rather than privileged system instructions.
0.1.6
- Upgrade nanobot to version 0.1.6 or later to resolve the indirect prompt injection vulnerability in the email channel processing module.
- If using a package manager (e.g., pip), run: pip install nanobot>=0.1.6 or pip install --upgrade nanobot
- After upgrading, verify the email.py module has been updated to version 0.1.6
- Restart the nanobot service to load the patched version
- Review email channel configuration to ensure proper input sanitization is in place (the patched version should handle this automatically)
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing4.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $5,120.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-33654 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-33654 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data