Skip to content

Commit 888f2ed

Browse files
committed
Do not trust input
1 parent 8e627ab commit 888f2ed

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/ProxyClient/LiteSpeed.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ private function createFile()
9797
$content = '<?php'."\n\n";
9898

9999
foreach ($this->headerLines as $header) {
100-
$content .= sprintf('header(\'%s\');', $header)."\n";
100+
$content .= sprintf('header(\'%s\');', addslashes($header))."\n";
101101
}
102102

103103
// Generate a reasonably random file name, no need to be cryptographically safe here

tests/Unit/ProxyClient/LiteSpeedTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,16 @@ public function testPurge()
5555
5656
header('X-LiteSpeed-Purge: /url');
5757
header('X-LiteSpeed-Purge: /another/url');
58+
header('X-LiteSpeed-Purge: foo\'); exec(\'rm -rf /\');//');
59+
header('X-LiteSpeed-Purge: foo\'); exec(\\\'rm -rf /\\\');//');
5860

5961
EOT;
6062
$this->assertLiteSpeedPurger($expectedContent);
6163

6264
$ls->purge('/url');
6365
$ls->purge('/another/url');
66+
$ls->purge("foo'); exec('rm -rf /');//"); // Somebody tried something evil
67+
$ls->purge("foo'); exec(\'rm -rf /\');//"); // Somebody tried something even more evil
6468
$ls->flush();
6569

6670
// Assert file has been deleted again

0 commit comments

Comments
 (0)