Uploaded image for project: 'Commons Codec'
  1. Commons Codec
  2. CODEC-313

QuotedPrintableCodec.encodeQuotedPrintable throws ArrayIndexOutOfBoundException

    XMLWordPrintableJSON

Details

    Description

      The encodeQuotedPrintable() method takes in a random byte array and processes it. If the provided strict boolean is true, it will go into the first branch. There is a for loop to loop through the byte array from the index 0 to the index byte.length - 3. The index is then used directly in getUnsignedOctet method If the length of the byte array is less than 3, it will result in a negative index and cause ArrayIndexOutOfBoundsException in getUnsignedOctet() method call.

      Possible fix could add a conditional check to ensure the index is never negative. It will simply return null if the byte array is too short (with a length less than 3) if strict value is true.

      We found this bug using fuzzing by way of OSS-Fuzz. It is reported at https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64358.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              arthur.chan Sheung Chi Chan
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: