ipython is vulnerable to Code Injection
76
CVE Score
High
Code Injection
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.
Upgrade the ipython library to the patch version.
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.
9.8.0 - 9.15.0
Fixed in 9.16.0ipython is vulnerable to Code Injection in versions 9.8.0 - 9.15.0.
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.
I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant
ISO 42001Compliant© All Intel data is openly available and commercially licensed.