Intel

AIKIDO-2026-274449

ipython is vulnerable to Code Injection

Code Injection Pre-CVE
Found by Aikido Intel before public disclosure or CVE publication.
Published 3 days ago

76

High Risk

This Affects:

PYTHONipython
9.8.0 - 9.15.0
Fixed in 9.16.0
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.

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.

Background info

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

How to fix this

Upgrade the ipython library to the patch version.