1--TEST-- 2GHSA-9fcc-425m-g385 - bypass CVE-2024-1874 - exhaustive suffix test 3--SKIPIF-- 4<?php 5if( substr(PHP_OS, 0, 3) != "WIN" ) 6 die('skip Run only on Windows'); 7?> 8--FILE-- 9<?php 10 11$batch_file_content = <<<EOT 12@echo off 13powershell -Command "Write-Output '%0%'" 14powershell -Command "Write-Output '%1%'" 15EOT; 16$batch_file_path = __DIR__ . '/ghsa-9fcc-425m-g385_003.bat'; 17 18file_put_contents($batch_file_path, $batch_file_content); 19 20$descriptorspec = [STDIN, STDOUT, STDOUT]; 21 22for ($i = 1; $i <= 255; $i++) { 23 echo "Testing $i\n"; 24 try { 25 $proc = @proc_open([$batch_file_path . chr($i), "\"¬epad.exe"], $descriptorspec, $pipes, null, null, array("bypass_shell" => true)); 26 var_dump($proc); 27 proc_close($proc); 28 } catch (Error) {} 29} 30 31?> 32--EXPECTF-- 33Testing 1 34bool(false) 35Testing 2 36bool(false) 37Testing 3 38bool(false) 39Testing 4 40bool(false) 41Testing 5 42bool(false) 43Testing 6 44bool(false) 45Testing 7 46bool(false) 47Testing 8 48bool(false) 49Testing 9 50bool(false) 51Testing 10 52bool(false) 53Testing 11 54bool(false) 55Testing 12 56bool(false) 57Testing 13 58bool(false) 59Testing 14 60bool(false) 61Testing 15 62bool(false) 63Testing 16 64bool(false) 65Testing 17 66bool(false) 67Testing 18 68bool(false) 69Testing 19 70bool(false) 71Testing 20 72bool(false) 73Testing 21 74bool(false) 75Testing 22 76bool(false) 77Testing 23 78bool(false) 79Testing 24 80bool(false) 81Testing 25 82bool(false) 83Testing 26 84bool(false) 85Testing 27 86bool(false) 87Testing 28 88bool(false) 89Testing 29 90bool(false) 91Testing 30 92bool(false) 93Testing 31 94bool(false) 95Testing 32 96resource(%d) of type (process) 97%s.bat 98"¬epad.exe 99Testing 33 100bool(false) 101Testing 34 102bool(false) 103Testing 35 104bool(false) 105Testing 36 106bool(false) 107Testing 37 108bool(false) 109Testing 38 110bool(false) 111Testing 39 112bool(false) 113Testing 40 114bool(false) 115Testing 41 116bool(false) 117Testing 42 118bool(false) 119Testing 43 120bool(false) 121Testing 44 122bool(false) 123Testing 45 124bool(false) 125Testing 46 126resource(%d) of type (process) 127'"%s.bat."' is not recognized as an internal or external command, 128operable program or batch file. 129Testing 47 130bool(false) 131Testing 48 132bool(false) 133Testing 49 134bool(false) 135Testing 50 136bool(false) 137Testing 51 138bool(false) 139Testing 52 140bool(false) 141Testing 53 142bool(false) 143Testing 54 144bool(false) 145Testing 55 146bool(false) 147Testing 56 148bool(false) 149Testing 57 150bool(false) 151Testing 58 152bool(false) 153Testing 59 154bool(false) 155Testing 60 156bool(false) 157Testing 61 158bool(false) 159Testing 62 160bool(false) 161Testing 63 162bool(false) 163Testing 64 164bool(false) 165Testing 65 166bool(false) 167Testing 66 168bool(false) 169Testing 67 170bool(false) 171Testing 68 172bool(false) 173Testing 69 174bool(false) 175Testing 70 176bool(false) 177Testing 71 178bool(false) 179Testing 72 180bool(false) 181Testing 73 182bool(false) 183Testing 74 184bool(false) 185Testing 75 186bool(false) 187Testing 76 188bool(false) 189Testing 77 190bool(false) 191Testing 78 192bool(false) 193Testing 79 194bool(false) 195Testing 80 196bool(false) 197Testing 81 198bool(false) 199Testing 82 200bool(false) 201Testing 83 202bool(false) 203Testing 84 204bool(false) 205Testing 85 206bool(false) 207Testing 86 208bool(false) 209Testing 87 210bool(false) 211Testing 88 212bool(false) 213Testing 89 214bool(false) 215Testing 90 216bool(false) 217Testing 91 218bool(false) 219Testing 92 220bool(false) 221Testing 93 222bool(false) 223Testing 94 224bool(false) 225Testing 95 226bool(false) 227Testing 96 228bool(false) 229Testing 97 230bool(false) 231Testing 98 232bool(false) 233Testing 99 234bool(false) 235Testing 100 236bool(false) 237Testing 101 238bool(false) 239Testing 102 240bool(false) 241Testing 103 242bool(false) 243Testing 104 244bool(false) 245Testing 105 246bool(false) 247Testing 106 248bool(false) 249Testing 107 250bool(false) 251Testing 108 252bool(false) 253Testing 109 254bool(false) 255Testing 110 256bool(false) 257Testing 111 258bool(false) 259Testing 112 260bool(false) 261Testing 113 262bool(false) 263Testing 114 264bool(false) 265Testing 115 266bool(false) 267Testing 116 268bool(false) 269Testing 117 270bool(false) 271Testing 118 272bool(false) 273Testing 119 274bool(false) 275Testing 120 276bool(false) 277Testing 121 278bool(false) 279Testing 122 280bool(false) 281Testing 123 282bool(false) 283Testing 124 284bool(false) 285Testing 125 286bool(false) 287Testing 126 288bool(false) 289Testing 127 290bool(false) 291Testing 128 292bool(false) 293Testing 129 294bool(false) 295Testing 130 296bool(false) 297Testing 131 298bool(false) 299Testing 132 300bool(false) 301Testing 133 302bool(false) 303Testing 134 304bool(false) 305Testing 135 306bool(false) 307Testing 136 308bool(false) 309Testing 137 310bool(false) 311Testing 138 312bool(false) 313Testing 139 314bool(false) 315Testing 140 316bool(false) 317Testing 141 318bool(false) 319Testing 142 320bool(false) 321Testing 143 322bool(false) 323Testing 144 324bool(false) 325Testing 145 326bool(false) 327Testing 146 328bool(false) 329Testing 147 330bool(false) 331Testing 148 332bool(false) 333Testing 149 334bool(false) 335Testing 150 336bool(false) 337Testing 151 338bool(false) 339Testing 152 340bool(false) 341Testing 153 342bool(false) 343Testing 154 344bool(false) 345Testing 155 346bool(false) 347Testing 156 348bool(false) 349Testing 157 350bool(false) 351Testing 158 352bool(false) 353Testing 159 354bool(false) 355Testing 160 356bool(false) 357Testing 161 358bool(false) 359Testing 162 360bool(false) 361Testing 163 362bool(false) 363Testing 164 364bool(false) 365Testing 165 366bool(false) 367Testing 166 368bool(false) 369Testing 167 370bool(false) 371Testing 168 372bool(false) 373Testing 169 374bool(false) 375Testing 170 376bool(false) 377Testing 171 378bool(false) 379Testing 172 380bool(false) 381Testing 173 382bool(false) 383Testing 174 384bool(false) 385Testing 175 386bool(false) 387Testing 176 388bool(false) 389Testing 177 390bool(false) 391Testing 178 392bool(false) 393Testing 179 394bool(false) 395Testing 180 396bool(false) 397Testing 181 398bool(false) 399Testing 182 400bool(false) 401Testing 183 402bool(false) 403Testing 184 404bool(false) 405Testing 185 406bool(false) 407Testing 186 408bool(false) 409Testing 187 410bool(false) 411Testing 188 412bool(false) 413Testing 189 414bool(false) 415Testing 190 416bool(false) 417Testing 191 418bool(false) 419Testing 192 420bool(false) 421Testing 193 422bool(false) 423Testing 194 424bool(false) 425Testing 195 426bool(false) 427Testing 196 428bool(false) 429Testing 197 430bool(false) 431Testing 198 432bool(false) 433Testing 199 434bool(false) 435Testing 200 436bool(false) 437Testing 201 438bool(false) 439Testing 202 440bool(false) 441Testing 203 442bool(false) 443Testing 204 444bool(false) 445Testing 205 446bool(false) 447Testing 206 448bool(false) 449Testing 207 450bool(false) 451Testing 208 452bool(false) 453Testing 209 454bool(false) 455Testing 210 456bool(false) 457Testing 211 458bool(false) 459Testing 212 460bool(false) 461Testing 213 462bool(false) 463Testing 214 464bool(false) 465Testing 215 466bool(false) 467Testing 216 468bool(false) 469Testing 217 470bool(false) 471Testing 218 472bool(false) 473Testing 219 474bool(false) 475Testing 220 476bool(false) 477Testing 221 478bool(false) 479Testing 222 480bool(false) 481Testing 223 482bool(false) 483Testing 224 484bool(false) 485Testing 225 486bool(false) 487Testing 226 488bool(false) 489Testing 227 490bool(false) 491Testing 228 492bool(false) 493Testing 229 494bool(false) 495Testing 230 496bool(false) 497Testing 231 498bool(false) 499Testing 232 500bool(false) 501Testing 233 502bool(false) 503Testing 234 504bool(false) 505Testing 235 506bool(false) 507Testing 236 508bool(false) 509Testing 237 510bool(false) 511Testing 238 512bool(false) 513Testing 239 514bool(false) 515Testing 240 516bool(false) 517Testing 241 518bool(false) 519Testing 242 520bool(false) 521Testing 243 522bool(false) 523Testing 244 524bool(false) 525Testing 245 526bool(false) 527Testing 246 528bool(false) 529Testing 247 530bool(false) 531Testing 248 532bool(false) 533Testing 249 534bool(false) 535Testing 250 536bool(false) 537Testing 251 538bool(false) 539Testing 252 540bool(false) 541Testing 253 542bool(false) 543Testing 254 544bool(false) 545Testing 255 546bool(false) 547--CLEAN-- 548<?php 549@unlink(__DIR__ . '/ghsa-9fcc-425m-g385_003.bat'); 550?> 551