#11393: SEGV on libavcodec/jpeg2000dec.c:1491:59 ---------------------------------+-------------------------------------- Reporter: 0x20z | Type: defect Status: new | Priority: important Component: avcodec | Version: git-master Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ---------------------------------+-------------------------------------- Summary of the bug: Dear developers, I have discovered a Segmentation Fault vulnerability. The POC file is attached to the session, and the version of ffmpeg is N-118197-gbb85423142, the main branch. Please confirm.
How to reproduce: {{{ git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ./configure --cc=clang --cxx=clang++ --toolchain=clang-asan --extra- cflags="-I$HOME/ffmpeg_build/include -O0 -fno-omit-frame-pointer -g" --extra-cxxflags="-O0 -fno-omit-frame-pointer -g" --extra- ldflags="-L$HOME/ffmpeg_build/include -fsanitize=address -fsanitize=undefined -lubsan" --disable-optimizations --disable-stripping --enable-cross-compile make -j30 ./ffmpeg -y -i poc tmp.mp4 }}} ASAN log: {{{ AddressSanitizer:DEADLYSIGNAL ================================================================= ==4155776==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5c833916beed bp 0x707b21dfe040 sp 0x707b21dfd150 T1) ==4155776==The signal is caused by a READ memory access. ==4155776==Hint: address points to the zero page. #0 0x5c833916beed in jpeg2000_decode_packet FFmpeg/libavcodec/jpeg2000dec.c:1491:59 #1 0x5c83391635ae in jpeg2000_decode_packets_po_iteration FFmpeg/libavcodec/jpeg2000dec.c:1595:40 #2 0x5c8339162ae6 in jpeg2000_decode_packets FFmpeg/libavcodec/jpeg2000dec.c:1856:15 #3 0x5c833914e32b in jpeg2000_read_bitstream_packets FFmpeg/libavcodec/jpeg2000dec.c:2651:20 #4 0x5c8339143d46 in jpeg2000_decode_frame FFmpeg/libavcodec/jpeg2000dec.c:2880:15 #5 0x5c8338ac27f5 in decode_simple_internal FFmpeg/libavcodec/decode.c:443:16 #6 0x5c8338ab04f4 in decode_simple_receive_frame FFmpeg/libavcodec/decode.c:613:15 #7 0x5c8338aadd59 in ff_decode_receive_frame_internal FFmpeg/libavcodec/decode.c:649:15 #8 0x5c83396b21ff in frame_worker_thread FFmpeg/libavcodec/pthread_frame.c:295:19 #9 0x707b24694ac2 in start_thread nptl/./nptl/pthread_create.c:442:8 #10 0x707b2472684f misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV FFmpeg/libavcodec/jpeg2000dec.c:1491:59 in jpeg2000_decode_packet Thread T1 (av:jpeg200:df0) created by T0 here: #0 0x5c8336dd625c in __interceptor_pthread_create (FFmpeg/ffmpeg+0x7b725c) (BuildId: e9074a31dadd6ca9f015fa496c6951e0bb7210b0) #1 0x5c83396afe91 in init_thread FFmpeg/libavcodec/pthread_frame.c:913:11 #2 0x5c83396aeb2f in ff_frame_thread_init FFmpeg/libavcodec/pthread_frame.c:972:15 #3 0x5c83396a7678 in ff_thread_init /FFmpeg/libavcodec/pthread.c:79:16 #4 0x5c833868ebbd in avcodec_open2 FFmpeg/libavcodec/avcodec.c:323:15 #5 0x5c8336e2aed4 in dec_open FFmpeg/fftools/ffmpeg_dec.c:1602:16 #6 0x5c8336e2915b in dec_init FFmpeg/fftools/ffmpeg_dec.c:1662:11 #7 0x5c8336e3e474 in ist_use FFmpeg/fftools/ffmpeg_demux.c:950:15 #8 0x5c8336e3f272 in ist_filter_add FFmpeg/fftools/ffmpeg_demux.c:986:11 #9 0x5c8336e6d919 in ifilter_bind_ist FFmpeg/fftools/ffmpeg_filter.c:690:11 #10 0x5c8336e6ceeb in fg_create_simple FFmpeg/fftools/ffmpeg_filter.c:1230:11 #11 0x5c8336eb21ff in ost_bind_filter FFmpeg/fftools/ffmpeg_mux_init.c:999:15 #12 0x5c8336ea67ad in ost_add FFmpeg/fftools/ffmpeg_mux_init.c:1536:15 #13 0x5c8336ea09be in map_auto_video FFmpeg/fftools/ffmpeg_mux_init.c:1640:16 #14 0x5c8336e99724 in create_streams FFmpeg/fftools/ffmpeg_mux_init.c:1969:19 #15 0x5c8336e97b55 in of_open FFmpeg/fftools/ffmpeg_mux_init.c:3335:11 #16 0x5c8336ec4512 in open_files FFmpeg/fftools/ffmpeg_opt.c:1363:15 #17 0x5c8336ec3e38 in ffmpeg_parse_options FFmpeg/fftools/ffmpeg_opt.c:1419:11 #18 0x5c8336f0cfad in main FFmpeg/fftools/ffmpeg.c:974:11 #19 0x707b24629d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 ==4155776==ABORTING }}} ffmpeg version: {{{ # ./ffmpeg -version ffmpeg version N-118197-gbb85423142 Copyright (c) 2000-2024 the FFmpeg developers built with Ubuntu clang version 14.0.0-1ubuntu1.1 configuration: --cc=clang --cxx=clang++ --ld=clang --enable-debug --toolchain=clang-asan --enable-cross-compile libavutil 59. 53.100 / 59. 53.100 libavcodec 61. 28.100 / 61. 28.100 libavformat 61. 9.102 / 61. 9.102 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 6.101 / 10. 6.101 libswscale 8. 13.100 / 8. 13.100 libswresample 5. 4.100 / 5. 4.100 }}} Found by: {{{ Found by 0x20z }}} Thank you for your time and attention -- Ticket URL: <https://trac.ffmpeg.org/ticket/11393> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
_______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org https://ffmpeg.org/mailman/listinfo/ffmpeg-trac To unsubscribe, visit link above, or email ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".