Issue metadata
Sign in to add a comment
|
PDFium->Openjpeg division-by-zero cause DOS
Reported by
soulchen...@gmail.com,
Sep 19 2016
|
||||||||||||||||||||||
Issue description
UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36
Steps to reproduce the problem:
1. open chrome
2. open the pdf attachment
3. the chrome will crash
What is the expected behavior?
What went wrong?
the call stack:
#0 opj_pi_next_cprl (pi=0x2507b40) at ../third_party/libopenjpeg20/pi.c:530
#1 opj_pi_next (pi=<optimized out>) at ../third_party/libopenjpeg20/pi.c:1887
#2 0x00000000018f277c in opj_t2_decode_packets (p_t2=<optimized out>, p_tile_no=<optimized out>, p_tile=<optimized out>,
p_src=<optimized out>, p_data_read=<optimized out>, p_max_len=<optimized out>, p_cstr_index=<optimized out>,
p_manager=<optimized out>) at ../third_party/libopenjpeg20/t2.c:412
#3 0x00000000018dde8b in opj_tcd_t2_decode (p_tcd=0x2463e00, p_src_data=<optimized out>, p_data_read=<optimized out>,
p_max_src_size=<optimized out>, p_cstr_index=<optimized out>, p_manager=<optimized out>) at ../third_party/libopenjpeg20/tcd.c:1591
#4 opj_tcd_decode_tile (p_tcd=0x2463e00, p_src=0x24ffd70 "0", p_max_length=<optimized out>, p_tile_no=48,
p_cstr_index=<optimized out>, p_manager=0x23f2988) at ../third_party/libopenjpeg20/tcd.c:1330
#5 0x00000000018bb176 in opj_j2k_decode_tile (p_j2k=<optimized out>, p_tile_index=48, p_data=<optimized out>,
p_data_size=<optimized out>, p_stream=<optimized out>, p_manager=<optimized out>) at ../third_party/libopenjpeg20/j2k.c:8073
#6 0x00000000018c98b0 in opj_j2k_decode_tiles (p_j2k=<optimized out>, p_stream=<optimized out>, p_manager=<optimized out>)
at ../third_party/libopenjpeg20/j2k.c:9614
#7 0x00000000018be8f1 in opj_j2k_exec (p_j2k=0x23f29e0, p_procedure_list=<optimized out>, p_stream=0x23f28b0, p_manager=0x23f2988)
at ../third_party/libopenjpeg20/j2k.c:7290
#8 opj_j2k_decode (p_j2k=<optimized out>, p_stream=<optimized out>, p_image=<optimized out>, p_manager=<optimized out>)
at ../third_party/libopenjpeg20/j2k.c:9814
#9 0x00000000018b65e3 in opj_decode (p_codec=0x23f2930, p_stream=0x23f28b0, p_image=0x2464220)
at ../third_party/libopenjpeg20/openjpeg.c:412
#10 0x000000000180e61c in CJPX_Decoder::Init (this=0x23f2870, src_data=<optimized out>, src_size=216)
at ../core/fxcodec/codec/fx_codec_jpx_opj.cpp:764
#11 0x000000000180f650 in CCodec_JpxModule::CreateDecoder (this=<optimized out>, src_buf=0xf <Address 0xf out of bounds>, src_size=0,
cs=0x0) at ../core/fxcodec/codec/fx_codec_jpx_opj.cpp:890
#12 0x000000000171e674 in CPDF_DIBSource::LoadJpxBitmap (this=0x23f2710) at ../core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp:626
#13 0x0000000001719fcd in CPDF_DIBSource::CreateDecoder (this=0x23f2710) at ../core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp:585
#14 0x000000000171c2cc in CPDF_DIBSource::StartLoadDIBSource (this=0x23f2710, pDoc=<optimized out>, pStream=<optimized out>,
bHasMask=1, pFormResources=<optimized out>, pPageResources=<optimized out>, bStdCS=<optimized out>, GroupFamily=<optimized out>,
bLoadMask=<optimized out>) at ../core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp:305
#15 0x000000000170ed41 in StartGetCachedBitmap (this=0x23f0030, pFormResources=<optimized out>, pPageResources=<optimized out>,
bStdCS=0, GroupFamily=0, bLoadMask=0, pRenderStatus=<optimized out>, downsampleWidth=<optimized out>,
downsampleHeight=<optimized out>) at ../core/fpdfapi/fpdf_render/fpdf_render_cache.cpp:281
#16 CPDF_PageRenderCache::StartGetCachedBitmap (this=<optimized out>, pStream=<optimized out>, bStdCS=<optimized out>,
GroupFamily=<optimized out>, bLoadMask=<optimized out>, pRenderStatus=<optimized out>, downsampleWidth=<optimized out>,
downsampleHeight=<optimized out>) at ../core/fpdfapi/fpdf_render/fpdf_render_cache.cpp:130
#17 0x0000000001725228 in CPDF_ImageLoaderHandle::Start (this=0x23f26e0, pImageLoader=<optimized out>, pImage=<optimized out>,
pCache=0x23ef990, bStdCS=0, GroupFamily=<optimized out>, bLoadMask=<optimized out>, pRenderStatus=<optimized out>,
nDownsampleWidth=<optimized out>, nDownsampleHeight=1) at ../core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp:1494
#18 0x00000000017256dc in CPDF_ImageLoader::Start (this=0x23f2670, pImage=0x23f1e00, pCache=<optimized out>,
pLoadHandle=<optimized out>, bStdCS=<optimized out>, GroupFamily=<optimized out>, bLoadMask=<optimized out>,
pRenderStatus=<optimized out>, nDownsampleWidth=<optimized out>, nDownsampleHeight=<optimized out>)
at ../core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp:1545
#19 0x0000000001713844 in CPDF_ImageRenderer::StartLoadDIBSource (this=0x23f2630)
at ../core/fpdfapi/fpdf_render/fpdf_render_image.cpp:380
#20 0x0000000001711375 in CPDF_ImageRenderer::Start (this=0x23f2630, pStatus=<optimized out>, pObj=<optimized out>,
pObj2Device=<optimized out>, bStdCS=<optimized out>, blendType=<optimized out>)
at ../core/fpdfapi/fpdf_render/fpdf_render_image.cpp:526
---Type <return> to continue, or q <return> to quit---
#21 0x0000000001705b29 in CPDF_RenderStatus::ContinueSingleObject (this=0x23f2470, pObj=0x23f1e00, pObj2Device=<optimized out>,
pPause=0x0) at ../core/fpdfapi/fpdf_render/fpdf_render.cpp:301
#22 0x000000000170b235 in CPDF_ProgressiveRenderer::Continue (this=<optimized out>, pPause=<optimized out>)
at ../core/fpdfapi/fpdf_render/fpdf_render.cpp:1040
#23 0x000000000170a9a6 in CPDF_ProgressiveRenderer::Start (this=0x23f2400, pPause=0x0)
at ../core/fpdfapi/fpdf_render/fpdf_render.cpp:1001
#24 0x000000000160513c in FPDF_RenderPage_Retail (pContext=0x23efd70, page=<optimized out>, start_x=<optimized out>,
start_y=<optimized out>, size_x=<optimized out>, size_y=<optimized out>, rotate=<optimized out>, flags=<optimized out>,
bNeedToRestore=1, pause=0x0) at ../fpdfsdk/fpdfview.cpp:905
#25 0x000000000160494f in FPDF_RenderPageBitmap (bitmap=0x23f2180, page=0x23ef640, start_x=<optimized out>, start_y=<optimized out>,
size_x=<optimized out>, size_y=<optimized out>, rotate=<optimized out>, flags=<optimized out>) at ../fpdfsdk/fpdfview.cpp:641
#26 0x000000000040f4cf in RenderPage (name=..., doc=<optimized out>, form=<optimized out>, page_index=<optimized out>, options=...,
events=...) at ../samples/pdfium_test.cc:576
#27 0x0000000000410805 in RenderPdf (name=..., pBuf=<optimized out>, len=<optimized out>, options=..., events=...)
at ../samples/pdfium_test.cc:764
#28 0x000000000041152a in main (argc=<optimized out>, argv=<optimized out>) at ../samples/pdfium_test.cc:904
the source code:
if (!((pi->y % (OPJ_INT32)(comp->dy << rpy) == 0) || ((pi->y == pi->ty0) && ((try0 << levelno) % (1 << rpy)))))
comp->dy is zero ,and will cause division-by-zero.
Did this work before? N/A
Chrome version: 53.0.2785.113 Channel: n/a
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version: Shockwave Flash 23.0 r0
,
Sep 19 2016
,
Sep 19 2016
Feel free to adjust labels and re-assign as appropriate!
,
Sep 19 2016
looks like issue 644628 . It's a bug not a security bug.
,
Sep 13 2017
This bug has been closed for more than 14 weeks. Removing security view restrictions. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by elawrence@chromium.org
, Sep 19 2016