We write a fuzz tool to fuzz Python standard libraries, and find three crashes: dis.dis(), dis.get_instructions() dis.show_code() in dis module.
dis.dis()
==========================================
xiaxinmeng:~ xiaxinmeng$ python3.10
Python 3.10.0a3 (v3.10.0a3:8bae2a958e, Dec 7 2020, 15:31:51)
[Clang 12.0.0 (clang-1200.0.32.27)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> dis.dis("s%-yPdrns"*1000000)
Segmentation fault: 11
=================================================
dis.get_instructions()
=================================================
Python 3.10.0a3 (v3.10.0a3:8bae2a958e, Dec 7 2020, 15:31:51)
[Clang 12.0.0 (clang-1200.0.32.27)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> dis.get_instructions("c/f/x"*1000000)
Segmentation fault: 11
==================================================
dis.show_code()
===================================================
Python 3.10.0a3 (v3.10.0a3:8bae2a958e, Dec 7 2020, 15:31:51)
[Clang 12.0.0 (clang-1200.0.32.27)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> dis.show_code("G/7/K"*1000000)
Segmentation fault: 11
====================================================
|