Intel

AIKIDO-2026-274449

ipython is vulnerable to Code Injection

Pre-CVE
Found by Aikido Intel before public disclosure or CVE publication.
Published Aug 4, 2026
August 4, 2026

76

CVE Score

High

Code Injection

Are you affected? Scan for Free

TL;DR

IPython's guarded evaluator used for tab completion falls back to typing.get_type_hints() after the active policy has already refused an attribute access. That helper resolves stringized annotations with bare eval(), so under PEP 563 every annotation becomes executable code. Completing obj.attr against a class whose __annotations__ contain attacker-controlled strings therefore runs arbitrary Python under the default limited policy. The fix collects raw annotations with inspect.get_annotations(eval_str=False) and resolves them through eval_node so they pass the same policy checks as the rest of the input.

How do I fix this?

Upgrade the ipython library to the patch version.

Who does this affect?

You are affected if you are using a version that falls within the vulnerable range and you use IPython tab completion (or other guarded evaluation) against objects whose class annotations can be influenced by untrusted code or packages.

Package

Versions

9.8.0 - 9.15.0

Fixed in 9.16.0

Background info

ipython is vulnerable to Code Injection in versions 9.8.0 - 9.15.0.

Get secure today,
quickly and for free.

Secure your code, cloud, and runtime in one central system. Connect a repo to discover what the reasoning agents find in your codebase.

No credit card required | Scan results in 32 seconds.

Trusted by 150k+ orgs
  • Revolut
  • n8n
  • Lovable
  • Deel
  • Prove
  • Omnea