Headline
CVE-2022-48078: Stack-Overflow in ASTree.cpp · Issue #295 · zrax/pycdc
pycdc commit 44a730f3a889503014fec94ae6e62d8401cb75e5 was discovered to contain a stack overflow via the component ASTree.cpp:BuildFromCode.
System info
Linux 4.15.0-117-generic #118-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
latest master 44a730f
Command Line
./pycdc poc
AddressSanitizer Output
=================================================================
==22513==ERROR: AddressSanitizer: stack-overflow on address 0x7ffebab9fa98 (pc 0x564add0f069f bp 0x7ffebabb0570 sp 0x7ffebab9fa60 T0)
#0 0x564add0f069e in BuildFromCode(PycRef<PycCode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:74
#1 0x564add137557 in decompyle(PycRef<PycCode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:3382
#2 0x564add12e23f in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2958
#3 0x564add131fe8 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:3188
#4 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#5 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#6 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#7 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#8 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#9 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#10 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#11 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#12 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#13 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#14 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#15 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#16 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#17 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#18 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#19 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#20 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#21 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#22 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#23 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#24 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#25 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#26 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#27 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#28 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#29 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#30 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#31 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#32 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#33 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#34 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#35 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#36 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#37 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#38 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#39 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#40 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#41 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#42 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#43 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#44 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#45 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#46 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#47 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#48 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#49 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#50 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#51 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#52 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#53 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#54 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#55 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#56 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#57 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#58 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#59 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#60 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#61 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#62 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#63 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#64 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#65 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#66 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#67 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#68 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#69 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#70 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#71 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#72 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#73 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#74 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#75 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#76 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#77 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#78 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#79 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#80 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#81 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#82 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#83 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#84 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#85 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#86 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#87 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#88 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#89 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#90 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#91 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#92 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#93 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#94 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#95 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#96 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#97 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#98 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#99 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#100 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#101 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#102 0x564add127964 in print_block /home/acesrc/git/pycdc_original/ASTree.cpp:2662
#103 0x564add12e095 in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2949
#104 0x564add12d04a in print_src(PycRef<ASTNode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:2897
#105 0x564add13978f in decompyle(PycRef<PycCode>, PycModule*) /home/acesrc/git/pycdc_original/ASTree.cpp:3468
#106 0x564add0ee53f in main /home/acesrc/git/pycdc_original/pycdc.cpp:91
#107 0x7f0b11510bf6 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21bf6)
#108 0x564add0ed709 in _start (/home/acesrc/git/pycdc_original/asan_build/pycdc+0x44709)
SUMMARY: AddressSanitizer: stack-overflow /home/acesrc/git/pycdc_original/ASTree.cpp:74 in BuildFromCode(PycRef<PycCode>, PycModule*)
==22513==ABORTING
POC
poc.zip