From 88ec00baed2f7c4924470c4f3173e6fd1596b891 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 19 May 2018 19:36:32 +0200 Subject: [PATCH 1/6] Replace '\n' by endl that flush content. Useful for debugging --- src/pngchunk_int.cpp | 4 ++-- src/pngimage.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pngchunk_int.cpp b/src/pngchunk_int.cpp index d6dd75a475..dbe4b2b74f 100644 --- a/src/pngchunk_int.cpp +++ b/src/pngchunk_int.cpp @@ -82,7 +82,7 @@ namespace Exiv2 { #ifdef DEBUG std::cout << "Exiv2::PngChunk::decodeTXTChunk: TXT chunk data: " - << std::string((const char*)arr.pData_, arr.size_) << "\n"; + << std::string((const char*)arr.pData_, arr.size_) << std::endl; #endif parseChunkContent(pImage, key.pData_, key.size_, arr); @@ -95,7 +95,7 @@ namespace Exiv2 { #ifdef DEBUG std::cout << "Exiv2::PngChunk::decodeTXTChunk: TXT chunk key: " - << std::string((const char*)key.pData_, key.size_) << "\n"; + << std::string((const char*)key.pData_, key.size_) << std::endl; #endif return parseTXTChunk(data, key.size_, type); diff --git a/src/pngimage.cpp b/src/pngimage.cpp index cc93ee23f9..a0e2e27c6c 100644 --- a/src/pngimage.cpp +++ b/src/pngimage.cpp @@ -369,7 +369,7 @@ namespace Exiv2 { void PngImage::readMetadata() { #ifdef DEBUG - std::cerr << "Exiv2::PngImage::readMetadata: Reading PNG file " << io_->path() << "\n"; + std::cerr << "Exiv2::PngImage::readMetadata: Reading PNG file " << io_->path() << std::endl; #endif if (io_->open() != 0) { @@ -392,7 +392,7 @@ namespace Exiv2 { // Read chunk header. #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Position: " << io_->tell() << "\n"; + std::cout << "Exiv2::PngImage::readMetadata: Position: " << io_->tell() << std::endl; #endif std::memset(cheaderBuf.pData_, 0x0, cheaderBuf.size_); long bufRead = io_->read(cheaderBuf.pData_, cheaderBuf.size_); @@ -426,14 +426,14 @@ namespace Exiv2 { { // Last chunk found: we stop parsing. #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Found IEND chunk (length: " << dataOffset << ")\n"; + std::cout << "Exiv2::PngImage::readMetadata: Found IEND chunk with length: " << dataOffset << std::endl; #endif return; } else if (!memcmp(cheaderBuf.pData_ + 4, "IHDR", 4)) { #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Found IHDR chunk (length: " << dataOffset << ")\n"; + std::cout << "Exiv2::PngImage::readMetadata: Found IHDR chunk with length: " << dataOffset << std::endl; #endif if (cdataBuf.size_ >= 8) { PngChunk::decodeIHDRChunk(cdataBuf, &pixelWidth_, &pixelHeight_); @@ -442,21 +442,21 @@ namespace Exiv2 { else if (!memcmp(cheaderBuf.pData_ + 4, "tEXt", 4)) { #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Found tEXt chunk (length: " << dataOffset << ")\n"; + std::cout << "Exiv2::PngImage::readMetadata: Found tEXt chunk with length: " << dataOffset << std::endl; #endif PngChunk::decodeTXTChunk(this, cdataBuf, PngChunk::tEXt_Chunk); } else if (!memcmp(cheaderBuf.pData_ + 4, "zTXt", 4)) { #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Found zTXt chunk (length: " << dataOffset << ")\n"; + std::cout << "Exiv2::PngImage::readMetadata: Found zTXt chunk with length: " << dataOffset << std::endl; #endif PngChunk::decodeTXTChunk(this, cdataBuf, PngChunk::zTXt_Chunk); } else if (!memcmp(cheaderBuf.pData_ + 4, "iTXt", 4)) { #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Found iTXt chunk (length: " << dataOffset << ")\n"; + std::cout << "Exiv2::PngImage::readMetadata: Found iTXt chunk with length: " << dataOffset << std::endl; #endif PngChunk::decodeTXTChunk(this, cdataBuf, PngChunk::iTXt_Chunk); } @@ -475,7 +475,7 @@ namespace Exiv2 { // Move to the next chunk: chunk data size + 4 CRC bytes. #ifdef DEBUG - std::cout << "Exiv2::PngImage::readMetadata: Seek to offset: " << dataOffset + 4 << "\n"; + std::cout << "Exiv2::PngImage::readMetadata: Seek to offset: " << dataOffset + 4 << std::endl; #endif io_->seek(dataOffset + 4 , BasicIo::cur); if (io_->error() || io_->eof()) throw Error(kerFailedToReadImageData); From bf79396e7002b49aa4100a3224ad3ce58959b713 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 19 May 2018 19:37:50 +0200 Subject: [PATCH 2/6] style: Apply formatting guidelines to one-line ifs --- src/pngimage.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/pngimage.cpp b/src/pngimage.cpp index a0e2e27c6c..3d4c3dfdb3 100644 --- a/src/pngimage.cpp +++ b/src/pngimage.cpp @@ -396,15 +396,21 @@ namespace Exiv2 { #endif std::memset(cheaderBuf.pData_, 0x0, cheaderBuf.size_); long bufRead = io_->read(cheaderBuf.pData_, cheaderBuf.size_); - if (io_->error()) throw Error(kerFailedToReadImageData); - if (bufRead != cheaderBuf.size_) throw Error(kerInputDataReadFailed); + if (io_->error()) { + throw Error(kerFailedToReadImageData); + } + if (bufRead != cheaderBuf.size_) { + throw Error(kerInputDataReadFailed); + } // Decode chunk data length. uint32_t dataOffset = Exiv2::getULong(cheaderBuf.pData_, Exiv2::bigEndian); long pos = io_->tell(); - if ( pos == -1 - || dataOffset > uint32_t(0x7FFFFFFF) - || static_cast(dataOffset) > imgSize - pos) throw Exiv2::Error(kerFailedToReadImageData); + if (pos == -1 || + dataOffset > uint32_t(0x7FFFFFFF) || + static_cast(dataOffset) > imgSize - pos) { + throw Exiv2::Error(kerFailedToReadImageData); + } // Perform a chunk triage for item that we need. @@ -419,8 +425,12 @@ namespace Exiv2 { DataBuf cdataBuf(dataOffset); bufRead = io_->read(cdataBuf.pData_, dataOffset); - if (io_->error()) throw Error(kerFailedToReadImageData); - if (bufRead != (long)dataOffset) throw Error(kerInputDataReadFailed); + if (io_->error()) { + throw Error(kerFailedToReadImageData); + } + if (bufRead != (long)dataOffset) { + throw Error(kerInputDataReadFailed); + } if (!memcmp(cheaderBuf.pData_ + 4, "IEND", 4)) { @@ -478,7 +488,9 @@ namespace Exiv2 { std::cout << "Exiv2::PngImage::readMetadata: Seek to offset: " << dataOffset + 4 << std::endl; #endif io_->seek(dataOffset + 4 , BasicIo::cur); - if (io_->error() || io_->eof()) throw Error(kerFailedToReadImageData); + if (io_->error() || io_->eof()) { + throw Error(kerFailedToReadImageData); + } } } // PngImage::readMetadata From 4bab67e9fbad444ad6193d72000041e7539858d5 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 19 May 2018 19:38:36 +0200 Subject: [PATCH 3/6] debug: Add new debug message to print the PNG chunk being processed --- src/pngimage.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pngimage.cpp b/src/pngimage.cpp index 3d4c3dfdb3..17de5bf822 100644 --- a/src/pngimage.cpp +++ b/src/pngimage.cpp @@ -412,8 +412,12 @@ namespace Exiv2 { throw Exiv2::Error(kerFailedToReadImageData); } - // Perform a chunk triage for item that we need. +#ifdef DEBUG + std::string chunkName(reinterpret_cast(cheaderBuf.pData_) + 4, 4); + std::cout << "Exiv2::PngImage::readMetadata: chunk name: " << chunkName << std::endl; +#endif + // Perform a chunk triage for item that we need. if (!memcmp(cheaderBuf.pData_ + 4, "IEND", 4) || !memcmp(cheaderBuf.pData_ + 4, "IHDR", 4) || !memcmp(cheaderBuf.pData_ + 4, "tEXt", 4) || From 758a814efe1bb064735d2f26c23a418e22386dc1 Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sun, 20 May 2018 08:57:13 +0200 Subject: [PATCH 4/6] Add tests for #306 --- test/data/pocIssue306 | Bin 0 -> 88125 bytes tests/bugfixes/github/test_CVE_2018_10999.py | 17 +++++++++++++++++ tests/suite.conf | 1 + 3 files changed, 18 insertions(+) create mode 100644 test/data/pocIssue306 create mode 100644 tests/bugfixes/github/test_CVE_2018_10999.py diff --git a/test/data/pocIssue306 b/test/data/pocIssue306 new file mode 100644 index 0000000000000000000000000000000000000000..1aa77e99563f89659c444c4692eb12733112d9cc GIT binary patch literal 88125 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 literal 0 HcmV?d00001 diff --git a/tests/bugfixes/github/test_CVE_2018_10999.py b/tests/bugfixes/github/test_CVE_2018_10999.py new file mode 100644 index 0000000000..2021a333e2 --- /dev/null +++ b/tests/bugfixes/github/test_CVE_2018_10999.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- + +import system_tests + + +class TestCvePoC(metaclass=system_tests.CaseMeta): + + url = "https://github.com/Exiv2/exiv2/issues/306" + + filename = "$data_path/pocIssue306" + commands = ["$exiv2 -et " + filename] + retval = [1] + stdout = [""] + stderr = [ + """$exception_in_extract """ + filename + """: +$kerFailedToReadImageData +"""] diff --git a/tests/suite.conf b/tests/suite.conf index 45a10eafbb..cac48e2af4 100644 --- a/tests/suite.conf +++ b/tests/suite.conf @@ -25,3 +25,4 @@ kerNoImageInInputData: Input data does not contain a valid image addition_overflow_message: Overflow in addition exiv2_exception_message: Exiv2 exception in print action for file exiv2_overflow_exception_message: std::overflow_error exception in print action for file +exception_in_extract: Exiv2 exception in extract action for file From 838dee762254bb6258f371aec9bc269edf1081ae Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Sat, 19 May 2018 19:39:30 +0200 Subject: [PATCH 5/6] Analyze minimum needed number of null separators in PngChunk::parseTXTChunk This commit fixes the heap-buffer-overflow in PngChunk::parseTXTChunk. According to the specification: http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html There must be 2 null separators when we start to analyze the language tag. --- src/pngchunk_int.cpp | 5 +++++ tests/bugfixes/github/test_CVE_2018_10999.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pngchunk_int.cpp b/src/pngchunk_int.cpp index dbe4b2b74f..61117e61cf 100644 --- a/src/pngchunk_int.cpp +++ b/src/pngchunk_int.cpp @@ -33,6 +33,7 @@ #include "iptc.hpp" #include "image.hpp" #include "error.hpp" +#include "enforce.hpp" // + standard includes #include @@ -42,6 +43,7 @@ #include #include #include +#include #include // To uncompress or compress text chunk @@ -162,6 +164,9 @@ namespace Exiv2 { } else if(type == iTXt_Chunk) { + const int nullSeparators = std::count(&data.pData_[keysize+3], &data.pData_[data.size_-1], '\0'); + enforce(nullSeparators >= 2, Exiv2::kerCorruptedMetadata); + // Extract a deflate compressed or uncompressed UTF-8 text chunk // we get the compression flag after the key diff --git a/tests/bugfixes/github/test_CVE_2018_10999.py b/tests/bugfixes/github/test_CVE_2018_10999.py index 2021a333e2..85b0e08e2d 100644 --- a/tests/bugfixes/github/test_CVE_2018_10999.py +++ b/tests/bugfixes/github/test_CVE_2018_10999.py @@ -13,5 +13,5 @@ class TestCvePoC(metaclass=system_tests.CaseMeta): stdout = [""] stderr = [ """$exception_in_extract """ + filename + """: -$kerFailedToReadImageData +$kerCorruptedMetadata """] From 4fbfdbb08c642d02dadc78f3bc737d6861de327f Mon Sep 17 00:00:00 2001 From: Luis Diaz Mas Date: Wed, 23 May 2018 10:34:20 +0200 Subject: [PATCH 6/6] Check validity of compressionFlag & compressionMethod --- src/pngchunk_int.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/pngchunk_int.cpp b/src/pngchunk_int.cpp index 61117e61cf..573d9abff7 100644 --- a/src/pngchunk_int.cpp +++ b/src/pngchunk_int.cpp @@ -165,14 +165,20 @@ namespace Exiv2 { else if(type == iTXt_Chunk) { const int nullSeparators = std::count(&data.pData_[keysize+3], &data.pData_[data.size_-1], '\0'); - enforce(nullSeparators >= 2, Exiv2::kerCorruptedMetadata); + enforce(nullSeparators >= 2, Exiv2::kerCorruptedMetadata, "iTXt chunk: not enough null separators"); // Extract a deflate compressed or uncompressed UTF-8 text chunk // we get the compression flag after the key - const byte* compressionFlag = data.pData_ + keysize + 1; + const byte compressionFlag = data.pData_[keysize + 1]; // we get the compression method after the compression flag - const byte* compressionMethod = data.pData_ + keysize + 2; + const byte compressionMethod = data.pData_[keysize + 2]; + + enforce(compressionFlag == 0x00 || compressionFlag == 0x01, Exiv2::kerCorruptedMetadata, + "iTXt chunk: not valid value in compressionFlag"); + enforce(compressionMethod == 0x00, Exiv2::kerCorruptedMetadata, + "iTXt chunk: not valid value in compressionMethod"); + // language description string after the compression technique spec std::string languageText((const char*)(data.pData_ + keysize + 3)); unsigned int languageTextSize = static_cast(languageText.size()); @@ -180,7 +186,7 @@ namespace Exiv2 { std::string translatedKeyText((const char*)(data.pData_ + keysize + 3 + languageTextSize +1)); unsigned int translatedKeyTextSize = static_cast(translatedKeyText.size()); - if ( compressionFlag[0] == 0x00 ) + if ( compressionFlag == 0x00 ) { // then it's an uncompressed iTXt chunk #ifdef DEBUG @@ -194,7 +200,7 @@ namespace Exiv2 { arr.alloc(textsize); arr = DataBuf(text, textsize); } - else if ( compressionFlag[0] == 0x01 && compressionMethod[0] == 0x00 ) + else if ( compressionFlag == 0x01 && compressionMethod == 0x00 ) { // then it's a zlib compressed iTXt chunk #ifdef DEBUG