From 9e2ce70d2bbe6f1a1d982f280c42be7078b3e8be Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sun, 17 Sep 2023 14:38:24 +0000 Subject: [PATCH] Bug 66425: Avoid NullPointerExceptions and ClassCastExceptions found via poi-fuzz We try to avoid throwing NullPointerException and ClassCastExceptions, but it was possible to trigger them Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62414 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62442 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62450 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912365 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/usermodel/XWPFComment.java | 4 +++- .../org/apache/poi/hslf/dev/PPTXMLDump.java | 13 ++++++----- .../apache/poi/hslf/dev/SlideShowDumper.java | 7 +++++- .../hslf/record/DocumentEncryptionAtom.java | 14 ++++++++++-- .../poi/hslf/dev/BaseTestPPTIterating.java | 1 + .../hslf/dev/TestPPDrawingTextListing.java | 21 +++++++++++++++++- .../apache/poi/hslf/dev/TestPPTXMLDump.java | 10 +++++++-- .../poi/hslf/dev/TestSlideIdListing.java | 3 ++- .../poi/hslf/dev/TestSlideShowDumper.java | 3 ++- .../hslf/dev/TestSlideShowRecordDumper.java | 15 ++++++++++++- .../dev/TestUserEditAndPersistListing.java | 15 ++++++++++++- .../crypt/agile/AgileEncryptionHeader.java | 2 +- ...imized-POIXWPFFuzzer-5313273089884160.docx | Bin 0 -> 4764 bytes ...e-minimized-POIFuzzer-5681320547975168.ppt | Bin 0 -> 19456 bytes ...nimized-POIHSLFFuzzer-6360479850954752.ppt | Bin 0 -> 9264 bytes test-data/spreadsheet/stress.xls | Bin 92160 -> 97280 bytes 16 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-5313273089884160.docx create mode 100644 test-data/slideshow/clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt create mode 100644 test-data/slideshow/clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt diff --git a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComment.java b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComment.java index 9d91f88953..b5640c600a 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComment.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFComment.java @@ -21,6 +21,7 @@ import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlObject; import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -361,7 +362,8 @@ public class XWPFComment implements IBody { * @return string id */ public String getId() { - return ctComment.getId().toString(); + final BigInteger id = ctComment.getId(); + return id == null ? "-1" : id.toString(); } /** diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/PPTXMLDump.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/PPTXMLDump.java index 7940dae77d..e27f5e3b93 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/PPTXMLDump.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/PPTXMLDump.java @@ -17,6 +17,7 @@ package org.apache.poi.hslf.dev; +import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -26,7 +27,6 @@ import java.io.Writer; import java.nio.charset.StandardCharsets; import java.util.Arrays; -import org.apache.commons.io.output.StringBuilderWriter; import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream; import org.apache.poi.hslf.record.RecordTypes; import org.apache.poi.hslf.usermodel.HSLFSlideShow; @@ -122,6 +122,11 @@ public final class PPTXMLDump { int size = (int)LittleEndian.getUInt(data, pos); pos += LittleEndianConsts.INT_SIZE; + if (size < 0) { + // stop processing of invalid header data + continue; + } + //get name of the record by type String recname = RecordTypes.forTypeID(type).name(); write(out, "<"+recname + " info=\""+info+"\" type=\""+type+"\" size=\""+size+"\" offset=\""+(pos-8)+"\"", padding); @@ -214,12 +219,10 @@ public final class PPTXMLDump { dump.dump(out); out.close(); } else { - StringBuilderWriter out = new StringBuilderWriter(1024); - dump.dump(out); - System.out.println(out); + dump.dump(new BufferedWriter( + new OutputStreamWriter(System.out, StandardCharsets.UTF_8))); } } - } } diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java index d457ee63b7..c3c6e4a146 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java @@ -194,6 +194,11 @@ public final class SlideShowDumper { pos += 8; out.printf(Locale.ROOT, ind + "That's a %2$s%n", "", recordName); + if (len < 0 /*|| len > Integer.MAX_VALUE*/) { + // stop processing of invalid header data + continue; + } + // Now check if it's a container or not int container = opt & 0x0f; @@ -219,7 +224,7 @@ public final class SlideShowDumper { } } - pos += (int) len; + pos += (int) Math.min(len, Integer.MAX_VALUE); } } diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/DocumentEncryptionAtom.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/DocumentEncryptionAtom.java index f2f05087da..64f1b83646 100644 --- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/DocumentEncryptionAtom.java +++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/DocumentEncryptionAtom.java @@ -26,8 +26,10 @@ import java.util.function.Supplier; import org.apache.poi.EncryptedDocumentException; import org.apache.poi.poifs.crypt.CipherAlgorithm; +import org.apache.poi.poifs.crypt.EncryptionHeader; import org.apache.poi.poifs.crypt.EncryptionInfo; import org.apache.poi.poifs.crypt.EncryptionMode; +import org.apache.poi.poifs.crypt.EncryptionVerifier; import org.apache.poi.poifs.crypt.HashAlgorithm; import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionHeader; import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionVerifier; @@ -118,8 +120,16 @@ public final class DocumentEncryptionAtom extends PositionDependentRecordAtom { bos.writeShort(ei.getVersionMinor()); bos.writeInt(ei.getEncryptionFlags()); - ((CryptoAPIEncryptionHeader)ei.getHeader()).write(bos); - ((CryptoAPIEncryptionVerifier)ei.getVerifier()).write(bos); + final EncryptionHeader header = ei.getHeader(); + if (!(header instanceof CryptoAPIEncryptionHeader)) { + throw new IllegalStateException("Had unexpected type of header: " + header.getClass()); + } + ((CryptoAPIEncryptionHeader) header).write(bos); + final EncryptionVerifier verifier = ei.getVerifier(); + if (!(verifier instanceof CryptoAPIEncryptionVerifier)) { + throw new IllegalStateException("Had unexpected type of verifier: " + verifier.getClass()); + } + ((CryptoAPIEncryptionVerifier) verifier).write(bos); // Header LittleEndian.putInt(_header, 4, bos.getWriteIndex()); diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java index 61f190a9c5..7848f688cd 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java @@ -64,6 +64,7 @@ public abstract class BaseTestPPTIterating { EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6416153805979648.ppt", Exception.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6710128412590080.ppt", RuntimeException.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt", FileNotFoundException.class); + EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt", FileNotFoundException.class); } public static Stream files() { diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPDrawingTextListing.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPDrawingTextListing.java index 206db2b20a..fc39881195 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPDrawingTextListing.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPDrawingTextListing.java @@ -19,12 +19,20 @@ package org.apache.poi.hslf.dev; import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import org.apache.poi.EmptyFileException; import org.junit.jupiter.api.Test; public class TestPPDrawingTextListing extends BaseTestPPTIterating { + static final Set LOCAL_EXCLUDED = new HashSet<>(); + static { + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt"); + } + @Test void testMain() throws IOException { // calls System.exit(): PPDrawingTextListing.main(new String[0]); @@ -33,6 +41,17 @@ public class TestPPDrawingTextListing extends BaseTestPPTIterating { @Override void runOneFile(File pFile) throws Exception { - PPDrawingTextListing.main(new String[]{pFile.getAbsolutePath()}); + try { + PPDrawingTextListing.main(new String[]{pFile.getAbsolutePath()}); + } catch (IndexOutOfBoundsException | IOException e) { + if (!LOCAL_EXCLUDED.contains(pFile.getName())) { + throw e; + } + } + + // work around one file which works here but not in other tests + if (pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt")) { + throw new FileNotFoundException(); + } } } diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java index 90965f727d..0f7b38a6b8 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java @@ -34,6 +34,8 @@ public class TestPPTXMLDump extends BaseTestPPTIterating { static { LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5306877435838464.ppt"); LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6032591399288832.ppt"); + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); + LOCAL_EXCLUDED.add("ppt_with_png_encrypted.ppt"); } @Test @@ -52,14 +54,18 @@ public class TestPPTXMLDump extends BaseTestPPTIterating { void runOneFile(File pFile) throws Exception { try { PPTXMLDump.main(new String[]{pFile.getAbsolutePath()}); + if (LOCAL_EXCLUDED.contains(pFile.getName())) { + throw new IllegalStateException("Expected failure for file " + pFile + ", but processing did not throw an exception"); + } } catch (IndexOutOfBoundsException | IOException e) { if (!LOCAL_EXCLUDED.contains(pFile.getName())) { throw e; } } - // work around one file which works here but not in other tests - if (pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt")) { + // work around two files which works here but not in other tests + if (pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt") || + pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt")) { throw new FileNotFoundException(); } } diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideIdListing.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideIdListing.java index f3afc851fb..f86247c86b 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideIdListing.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideIdListing.java @@ -31,6 +31,7 @@ public class TestSlideIdListing extends BaseTestPPTIterating { static final Set LOCAL_EXCLUDED = new HashSet<>(); static { LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5306877435838464.ppt"); + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); } @Test @@ -46,7 +47,7 @@ public class TestSlideIdListing extends BaseTestPPTIterating { void runOneFile(File pFile) throws Exception { try { SlideIdListing.main(new String[]{pFile.getAbsolutePath()}); - } catch (IllegalArgumentException e) { + } catch (RuntimeException e) { if (!LOCAL_EXCLUDED.contains(pFile.getName())) { throw e; } diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java index 1b62833aec..06a742c191 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java @@ -38,6 +38,7 @@ public class TestSlideShowDumper extends BaseTestPPTIterating { FAILING.add("cryptoapi-proc2356.ppt"); FAILING.add("41384.ppt"); FAILING.add("bug56240.ppt"); + FAILING.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); } @Test @@ -66,7 +67,7 @@ public class TestSlideShowDumper extends BaseTestPPTIterating { } } catch (FileNotFoundException e) { // some old files are not detected correctly - if(!OLD_FILES.contains(pFile.getName())) { + if(!FAILING.contains(pFile.getName()) && !OLD_FILES.contains(pFile.getName())) { throw e; } } diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowRecordDumper.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowRecordDumper.java index 4392ec603a..2a45921a11 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowRecordDumper.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowRecordDumper.java @@ -20,12 +20,19 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import org.apache.poi.EmptyFileException; import org.apache.poi.hslf.HSLFTestDataSamples; import org.junit.jupiter.api.Test; public class TestSlideShowRecordDumper extends BaseTestPPTIterating { + static final Set LOCAL_EXCLUDED = new HashSet<>(); + static { + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); + } + @Test void testMain() throws IOException { SlideShowRecordDumper.main(new String[] { @@ -47,6 +54,12 @@ public class TestSlideShowRecordDumper extends BaseTestPPTIterating { @Override void runOneFile(File pFile) throws Exception { - SlideShowRecordDumper.main(new String[]{pFile.getAbsolutePath()}); + try { + SlideShowRecordDumper.main(new String[]{pFile.getAbsolutePath()}); + } catch (IllegalStateException e) { + if (!LOCAL_EXCLUDED.contains(pFile.getName())) { + throw e; + } + } } } \ No newline at end of file diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestUserEditAndPersistListing.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestUserEditAndPersistListing.java index c284ce1ba3..fab8679776 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestUserEditAndPersistListing.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestUserEditAndPersistListing.java @@ -20,11 +20,18 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.IOException; +import java.util.HashSet; +import java.util.Set; import org.apache.poi.EmptyFileException; import org.junit.jupiter.api.Test; public class TestUserEditAndPersistListing extends BaseTestPPTIterating { + static final Set LOCAL_EXCLUDED = new HashSet<>(); + static { + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); + } + @Test void testMain() throws IOException { // calls System.exit(): UserEditAndPersistListing.main(new String[0]); @@ -33,6 +40,12 @@ public class TestUserEditAndPersistListing extends BaseTestPPTIterating { @Override void runOneFile(File pFile) throws Exception { - UserEditAndPersistListing.main(new String[]{pFile.getAbsolutePath()}); + try { + UserEditAndPersistListing.main(new String[]{pFile.getAbsolutePath()}); + } catch (IllegalStateException e) { + if (!LOCAL_EXCLUDED.contains(pFile.getName())) { + throw e; + } + } } } \ No newline at end of file diff --git a/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java b/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java index 78c289f5ea..3d08cf7fbf 100644 --- a/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java +++ b/poi/src/main/java/org/apache/poi/poifs/crypt/agile/AgileEncryptionHeader.java @@ -61,7 +61,7 @@ public class AgileEncryptionHeader extends EncryptionHeader { setFlags(0); setSizeExtra(0); setCspName(null); - setBlockSize(keyData.getBlockSize()); + setBlockSize(keyData.getBlockSize() == null ? 0 : keyData.getBlockSize()); setChainingMode(keyData.getCipherChaining()); diff --git a/test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-5313273089884160.docx b/test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-5313273089884160.docx new file mode 100644 index 0000000000000000000000000000000000000000..169a1d0d46109b13ac28d5174a49cc6f172f0822 GIT binary patch literal 4764 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 Dw(L*) literal 0 HcmV?d00001 diff --git a/test-data/slideshow/clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt b/test-data/slideshow/clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt new file mode 100644 index 0000000000000000000000000000000000000000..48898135a6bdf344fa2c1128271f0f20df190021 GIT binary patch literal 19456 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 DCr8`G literal 0 HcmV?d00001 diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index fb15d8174a44a4b02884d8591fe60811c820fcb9..0c0044cfc459a3bacf826f644ddb477249f15bc8 100644 GIT binary patch literal 97280 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 literal 92160 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

eyjsYs)i|$a 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 N-X~-F_5XMT{s&mmLAw9|