Crash in CPDFSDK_PageView::GetPageIndex |
|||||||||
Issue descriptionDetailed report: https://cluster-fuzz.appspot.com/testcase?key=4844167381647360 Fuzzer: ifratric_acrojs Job Type: mac_asan_chrome Platform Id: mac Crash Type: UNKNOWN READ Crash Address: 0x000000000000 Crash State: CPDFSDK_PageView::GetPageIndex Document::pageNum void JSPropGetter<Document, & Regressed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=393862:393893 Minimized Testcase (312.17 Kb): https://cluster-fuzz.appspot.com/download/AMIfv940Fk97h91Iy_xT7MpjZCboOadSq1SiSjAaWS9ghnqeFQ8D6WpsD2uBZC9gGR7wuAHjqp3SzvWCjNAuHm4XPVepx2cC_L0qlJOZDBGZPgcJlH26B5ZR9fbqdCtFM1CrhrnEv4N07P1YrGnzLdp6MbJAuG9mVYOJfyjRpxvSxCbHdFE2o6Q Filer: pucchakayala See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
,
May 24 2016
A quick glance at the changelist makes me suspect https://chromium.googlesource.com/chromium/src/+/08e9434b6f4938517755815da37752b0cd906be7 There was no relevant V8 change in the range; and "suspected project" points at pdfium anyway...
,
May 24 2016
,
May 24 2016
,
May 31 2016
The asan bug started after https://codereview.chromium.org/1652873003/ but I have a feeling that just uncovered some other underlying issue.
,
May 31 2016
,
May 31 2016
This only happens when we run in Chromium, doesn't seem to happen in pdfium_test. It looks like this has something to do with the isolates in that the data we're getting back is in a weird state. We have the pointer to the object, the object destructor hasn't been called, but the members are wiped out?
,
Jun 2 2016
This looks like it's a problem in pdfium_engine.cc. There are two issues that I see in there. In PDFiumEngine::CheckPageAvailable there is a if (!FPDFAvail_IsPageAvail()) but, the FDPFAvail returns 3 possible values, -1, 0 or 1 for ERROR, NOTAVAIL or AVAIL. We need to correctly handle the ERROR case and set that the data is not available. Then, in PDFiumEngine::FinishLoadingDocument, we call FPDFAvail_IsPageAvail() but don't check the return value. It's possible that this can also return ERROR or NOT_AVAIL. This means we can have a non-available page which, when we call the JS document open can give us bad data back when we try to access the page we assume exists. Potential fix up at: https://codereview.chromium.org/2030953003/
,
Jun 8 2016
I think this is the actual solution: https://codereview.chromium.org/2045013004/ tsepez: BTW, this is a nullptr deref -> can we remove the view restrictions?
,
Jun 8 2016
,
Jun 9 2016
,
Jun 9 2016
ClusterFuzz has detected this issue as fixed in range 398833:398850. Detailed report: https://cluster-fuzz.appspot.com/testcase?key=4844167381647360 Fuzzer: ifratric_acrojs Job Type: mac_asan_chrome Platform Id: mac Crash Type: UNKNOWN READ Crash Address: 0x000000000000 Crash State: CPDFSDK_PageView::GetPageIndex Document::pageNum void JSPropGetter<Document, & Regressed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=393862:393893 Fixed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=398833:398850 Minimized Testcase (312.17 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94T9Fw7E4vzjPepANczc-XKqw67AI5EZ6bHe5h62Cu7TEfFeyXHzGZiZdUJ6Z_SU6sijiaz6SJWFtMnOiiPJ4ad2rG4M7xINxrFbLlgPBQnaqIBW3i61HyUIqAhvU6sfS9wbZ0VsL_J67NSkB5sndxvvqGwT9H8mnAHVSKl7vCeV9yAhqo See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information. If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
,
Oct 5 2016
,
Nov 22 2016
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by pucchakayala@chromium.org
, May 23 2016Labels: Te-Logged M-53
Owner: verwa...@chromium.org
Status: Assigned (was: Available)