ipython is vulnerable to Code Injection
76
High Risk
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.
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.
ipython is vulnerable to Code Injection in versions 9.8.0 - 9.15.0.
Upgrade the ipython library to the patch version.
Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.
Free. No credit card required.

I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant