Issue29491
This issue tracker has been migrated to GitHub,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2017-02-08 14:48 by beginvuln, last changed 2022-04-11 14:58 by admin. This issue is now closed.
Files | ||||
---|---|---|---|---|
File name | Uploaded | Description | Edit | |
ctypes_5013 | beginvuln, 2017-02-08 14:48 | PoC |
Messages (1) | |||
---|---|---|---|
msg287327 - (view) | Author: BeginVuln (beginvuln) | Date: 2017-02-08 14:48 | |
OS Version : Ubuntu 16.04 LTS Python download link : https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz Python version : 3.6.0 Normal build cmd : ./configure make Asan build cmd: export CC="/usr/bin/clang -fsanitize=address export CXX="/usr/bin/clang++ -fsanitize=address ./confiugre make GDB with exploitable: To enable execution of this file add add-auto-load-safe-path /home/test/check/PythonGDB/python-gdb.py line to your configuration file "/home/test/.gdbinit". To completely disable this security protection add set auto-load safe-path / line to your configuration file "/home/test/.gdbinit". For more information about this security protection see the "Auto-loading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Auto-loading safe path" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Inferior 1 (process 19397) exited with code 01] ASAN: ================================================================= ==17935==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000e734 at pc 0x7f6e87941564 bp 0x7fff533392c0 sp 0x7fff533392b8 READ of size 4 at 0x60200000e734 thread T0 #0 0x7f6e87941563 in Pointer_subscript /home/test/check/PythonASAN/Modules/_ctypes/_ctypes.c:5013 #1 0x7f6e87941563 in ?? ??:0 #2 0x79987c in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:1458 (discriminator 1) #3 0x79987c in ?? ??:0 #4 0x7ab4cb in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #5 0x7ab4cb in _PyFunction_FastCall /home/test/check/PythonASAN/Python/ceval.c:4870 #6 0x7ab4cb in fast_function /home/test/check/PythonASAN/Python/ceval.c:4905 #7 0x7ab4cb in ?? ??:0 #8 0x7a76f2 in call_function /home/test/check/PythonASAN/Python/ceval.c:4809 #9 0x7a76f2 in ?? ??:0 #10 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #11 0x7995cc in ?? ??:0 #12 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #13 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #14 0x7a9847 in ?? ??:0 #15 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #16 0x7ac2ea in ?? ??:0 #17 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #18 0x574668 in ?? ??:0 #19 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #20 0x5749fa in ?? ??:0 #21 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #22 0x573e9b in ?? ??:0 #23 0x793369 in do_call_core /home/test/check/PythonASAN/Python/ceval.c:5057 #24 0x793369 in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3357 #25 0x793369 in ?? ??:0 #26 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #27 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #28 0x7a9847 in ?? ??:0 #29 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #30 0x7ac2ea in ?? ??:0 #31 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #32 0x574668 in ?? ??:0 #33 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #34 0x5749fa in ?? ??:0 #35 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #36 0x573e9b in ?? ??:0 #37 0x66efe4 in slot_tp_call /home/test/check/PythonASAN/Objects/typeobject.c:6167 #38 0x66efe4 in ?? ??:0 #39 0x5745f0 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2316 #40 0x5745f0 in ?? ??:0 #41 0x7a7429 in call_function /home/test/check/PythonASAN/Python/ceval.c:4812 #42 0x7a7429 in ?? ??:0 #43 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #44 0x7995cc in ?? ??:0 #45 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #46 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #47 0x7a9847 in ?? ??:0 #48 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #49 0x7ac2ea in ?? ??:0 #50 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #51 0x574668 in ?? ??:0 #52 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #53 0x5749fa in ?? ??:0 #54 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #55 0x573e9b in ?? ??:0 #56 0x793369 in do_call_core /home/test/check/PythonASAN/Python/ceval.c:5057 #57 0x793369 in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3357 #58 0x793369 in ?? ??:0 #59 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #60 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #61 0x7a9847 in ?? ??:0 #62 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #63 0x7ac2ea in ?? ??:0 #64 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #65 0x574668 in ?? ??:0 #66 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #67 0x5749fa in ?? ??:0 #68 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #69 0x573e9b in ?? ??:0 #70 0x66efe4 in slot_tp_call /home/test/check/PythonASAN/Objects/typeobject.c:6167 #71 0x66efe4 in ?? ??:0 #72 0x5745f0 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2316 #73 0x5745f0 in ?? ??:0 #74 0x7a7429 in call_function /home/test/check/PythonASAN/Python/ceval.c:4812 #75 0x7a7429 in ?? ??:0 #76 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #77 0x7995cc in ?? ??:0 #78 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #79 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #80 0x7a9847 in ?? ??:0 #81 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #82 0x7ac2ea in ?? ??:0 #83 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #84 0x574668 in ?? ??:0 #85 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #86 0x5749fa in ?? ??:0 #87 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #88 0x573e9b in ?? ??:0 #89 0x793369 in do_call_core /home/test/check/PythonASAN/Python/ceval.c:5057 #90 0x793369 in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3357 #91 0x793369 in ?? ??:0 #92 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #93 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #94 0x7a9847 in ?? ??:0 #95 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #96 0x7ac2ea in ?? ??:0 #97 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #98 0x574668 in ?? ??:0 #99 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #100 0x5749fa in ?? ??:0 #101 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #102 0x573e9b in ?? ??:0 #103 0x66efe4 in slot_tp_call /home/test/check/PythonASAN/Objects/typeobject.c:6167 #104 0x66efe4 in ?? ??:0 #105 0x5745f0 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2316 #106 0x5745f0 in ?? ??:0 #107 0x7a7429 in call_function /home/test/check/PythonASAN/Python/ceval.c:4812 #108 0x7a7429 in ?? ??:0 #109 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #110 0x7995cc in ?? ??:0 #111 0x7ab4cb in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #112 0x7ab4cb in _PyFunction_FastCall /home/test/check/PythonASAN/Python/ceval.c:4870 #113 0x7ab4cb in fast_function /home/test/check/PythonASAN/Python/ceval.c:4905 #114 0x7ab4cb in ?? ??:0 #115 0x7a76f2 in call_function /home/test/check/PythonASAN/Python/ceval.c:4809 #116 0x7a76f2 in ?? ??:0 #117 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #118 0x7995cc in ?? ??:0 #119 0x7ab4cb in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #120 0x7ab4cb in _PyFunction_FastCall /home/test/check/PythonASAN/Python/ceval.c:4870 #121 0x7ab4cb in fast_function /home/test/check/PythonASAN/Python/ceval.c:4905 #122 0x7ab4cb in ?? ??:0 #123 0x7a76f2 in call_function /home/test/check/PythonASAN/Python/ceval.c:4809 #124 0x7a76f2 in ?? ??:0 #125 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #126 0x7995cc in ?? ??:0 #127 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #128 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #129 0x7a9847 in ?? ??:0 #130 0x7ac2ea in _PyFunction_FastCallDict /home/test/check/PythonASAN/Python/ceval.c:5021 #131 0x7ac2ea in ?? ??:0 #132 0x574668 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2295 #133 0x574668 in ?? ??:0 #134 0x5749fa in _PyObject_Call_Prepend /home/test/check/PythonASAN/Objects/abstract.c:2358 #135 0x5749fa in ?? ??:0 #136 0x573e9b in PyObject_Call /home/test/check/PythonASAN/Objects/abstract.c:2246 #137 0x573e9b in ?? ??:0 #138 0x6713f8 in slot_tp_init /home/test/check/PythonASAN/Objects/typeobject.c:6380 #139 0x6713f8 in ?? ??:0 #140 0x666d8d in type_call /home/test/check/PythonASAN/Objects/typeobject.c:915 (discriminator 1) #141 0x666d8d in ?? ??:0 #142 0x5745f0 in _PyObject_FastCallDict /home/test/check/PythonASAN/Objects/abstract.c:2316 #143 0x5745f0 in ?? ??:0 #144 0x7a7429 in call_function /home/test/check/PythonASAN/Python/ceval.c:4812 #145 0x7a7429 in ?? ??:0 #146 0x7995cc in _PyEval_EvalFrameDefault /home/test/check/PythonASAN/Python/ceval.c:3275 #147 0x7995cc in ?? ??:0 #148 0x7a9847 in PyEval_EvalFrameEx /home/test/check/PythonASAN/Python/ceval.c:718 #149 0x7a9847 in _PyEval_EvalCodeWithName /home/test/check/PythonASAN/Python/ceval.c:4119 #150 0x7a9847 in ?? ??:0 #151 0x78e0df in PyEval_EvalCodeEx /home/test/check/PythonASAN/Python/ceval.c:4140 #152 0x78e0df in PyEval_EvalCode /home/test/check/PythonASAN/Python/ceval.c:695 #153 0x78e0df in ?? ??:0 #154 0x5142f5 in run_mod /home/test/check/PythonASAN/Python/pythonrun.c:980 #155 0x5142f5 in PyRun_FileExFlags /home/test/check/PythonASAN/Python/pythonrun.c:933 #156 0x5142f5 in ?? ??:0 #157 0x512afa in PyRun_SimpleFileExFlags /home/test/check/PythonASAN/Python/pythonrun.c:396 #158 0x512afa in ?? ??:0 #159 0x53eefd in run_file /home/test/check/PythonASAN/Modules/main.c:320 #160 0x53eefd in Py_Main /home/test/check/PythonASAN/Modules/main.c:780 #161 0x53eefd in ?? ??:0 #162 0x503d16 in main /home/test/check/PythonASAN/./Programs/python.c:69 #163 0x503d16 in ?? ??:0 #164 0x7f6e8b28d82f in __libc_start_main /build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291 #165 0x7f6e8b28d82f in ?? ??:0 #166 0x432548 in _start ??:? #167 0x432548 in ?? ??:0 0x60200000e734 is located 0 bytes to the right of 4-byte region [0x60200000e730,0x60200000e734) allocated by thread T0 here: #0 0x4d2678 in malloc ??:? #1 0x4d2678 in ?? ??:0 #2 0x7f6e874cc9bc in my_wcsdup /home/test/check/PythonASAN/Modules/_ctypes/_ctypes_test.c:185 (discriminator 1) #3 0x7f6e874cc9bc in ?? ??:0 #2 0x7fff53338f5f (<unknown module>) SUMMARY: AddressSanitizer: heap-buffer-overflow (/home/test/check/PythonASAN/build/lib.linux-x86_64-3.6/_ctypes.cpython-36m-x86_64-linux-gnu.so+0x27563) Shadow bytes around the buggy address: 0x0c047fff9c90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9ca0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9cb0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9cc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c047fff9cd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x0c047fff9ce0: fa fa fa fa fa fa[04]fa fa fa fd fa fa fa fd fa 0x0c047fff9cf0: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fff9d00: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fff9d10: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fff9d20: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa 0x0c047fff9d30: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==17935==ABORTING |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:42 | admin | set | github: 73677 |
2017-02-08 14:57:03 | matrixise | set | status: open -> closed stage: resolved |
2017-02-08 14:56:00 | christian.heimes | set | priority: normal -> low type: security -> behavior components: + Extension Modules, - Interpreter Core |
2017-02-08 14:48:54 | beginvuln | set | type: security |
2017-02-08 14:48:13 | beginvuln | create |