New issue
Advanced search Search tips

Issue 649832 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 4
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Integer-overflow in TetrahedralInterp16

Project Member Reported by ClusterFuzz, Sep 23 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=5287619883958272

Fuzzer: libfuzzer_pdf_codec_icc_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  TetrahedralInterp16
  CachedXFORM
  IccLib_Translate
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_ubsan&range=420535:420584

Minimized Testcase (0.14 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94FaxOhLTO_2PAoNz-mVaWKg-3FWpK57dNB9-6wSoxPKe9lkpgrY4AJLROM4cSBmvQvl4hNCYaS6XwLi9MB8HsaruFpCEyyqrkZwbH-bTqTl37RTvq15TP6EwrBen6iCu8G1r4T_gh1QZvMvpCql5ZzLW8TAg?testcase_id=5287619883958272

Issue manually filed by: mmohammad

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
 
Owner: dsinclair@chromium.org
Status: Assigned (was: Untriaged)
dsinclair@  could you please look into this.please feel free to re-assigned back if needed. thanks in advance !
Cc: kcc@chromium.org
Cc: dsinclair@chromium.org
Owner: kcwu@chromium.org
kcwu@ can you take a look? I believe you've fixed a few of the issues in ICC.

Comment 4 by kcwu@chromium.org, Sep 29 2016

Cc: -dsinclair@chromium.org kcwu@chromium.org
Owner: dsinclair@chromium.org
This one is similar to https://bugs.chromium.org/p/chromium/issues/detail?id=649847

lcms is doing tetrahedral interpolation and the result value overflowed. I'm not familiar with color space conversion and don't know how to handle such case.

Cc: caryclark@google.com
Thanks, I'll try to take a look.
Project Member

Comment 6 by ClusterFuzz, Oct 6 2016

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=4628308514045952

Fuzzer: libfuzzer_pdf_codec_icc_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  TetrahedralInterp16
  EvaluateCLUTfloatIn16
  _LUTevalFloat
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_ubsan&range=420535:420584

Minimized Testcase (0.14 Kb): https://cluster-fuzz.appspot.com/download/AMIfv944yA-FMAFogOub0ZNWC2Jq8g6isBj2zMMWy7GtGVgUFJkAHhvNnvpQJG6oJ7O9JuR_foOR49bExuHOwBjwh1SLW3tusAhqtEcA4XKsHBu7niXJ-BX1Y0Zq5EwgqQkwp1M4FBVqNCSNhoVACaSSjL-st-ex9w?testcase_id=4628308514045952

Additional requirements: Requires Gestures

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
Project Member

Comment 7 by ClusterFuzz, Oct 6 2016

Components: Internals>Plugins>PDF
Project Member

Comment 9 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
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
Project Member

Comment 10 by ClusterFuzz, Feb 23 2017

Project Member

Comment 11 by ClusterFuzz, Oct 1 2017

Labels: Test-Predator-AutoComponents
Automatically applying components based on information from OWNERS files. If this seems incorrect, please apply the Test-Predator-Wrong-Components label.
Cc: -caryclark@google.com
For more information, please see https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md.

The link referenced in the description is no longer valid.

(bulk edit)
Labels: -Test-Predator-AutoComponents Test-Predator-Auto-Components
Owner: ----
Status: Untriaged (was: Assigned)
Setting PDF bugs assigned to me back to untriaged so they can get re-assigned as needed.
Cc: hnakashima@chromium.org
Owner: tsepez@chromium.org
Status: Assigned (was: Untriaged)
Tom, I've taken a look at this issue, and what's happening is that on this line:

Rest = c1 * rx + c2 * ry + c3 * rz + 0x8001;

c1 and rx are int32's and I the values I see are:
c1 45558, c2 -45558, c3 0
rx 61424, ry 61424, rz 61424
Rest 32769

c1 * rx therefore overflows an int32, triggering the bug. Since c2 * ry negates it (with the corresponding negative overflow), and c3 is 0, the sum is 0 and the Rest is 0x8001. I think this is WAI for the library, but there are integer overflows. What should we do?
Project Member

Comment 17 by ClusterFuzz, Oct 17

ClusterFuzz has detected this issue as fixed in range 600184:600189.

Detailed report: https://clusterfuzz.com/testcase?key=4628308514045952

Fuzzer: libFuzzer_pdf_codec_icc_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  TetrahedralInterp16
  EvaluateCLUTfloatIn16
  _LUTevalFloat
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=420535:420584
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=600184:600189

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=4628308514045952

Additional requirements: Requires Gestures

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 18 by ClusterFuzz, Oct 17

ClusterFuzz has detected this issue as fixed in range 600184:600189.

Detailed report: https://clusterfuzz.com/testcase?key=5287619883958272

Fuzzer: libFuzzer_pdf_codec_icc_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  TetrahedralInterp16
  CachedXFORM
  cmsDoTransform
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=420535:420584
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=600184:600189

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5287619883958272

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 19 by ClusterFuzz, Oct 17

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase 4628308514045952 is verified as fixed, so closing issue as verified.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Status: Assigned (was: Verified)
PartitionAlloc update broke the fuzzer.
thestig@, why did you re-open this bug? Does tsepez@ need to do anything else here? The fact that this bug is still open, even though all the crashes were fixed, prevents ClusterFuzz from reporting other similar issue(s) like https://clusterfuzz.com/testcase-detail/5888708253057024

Owner: npm@chromium.org
Status: Fixed (was: Assigned)
Around the time I posted comment 20, I broke all the fuzzers, so I reopened all the ones that CF was confused about.

Comment 10 should have marked this as fixed, but it didn't for some reason.

Sign in to add a comment