Skip to content

Commit

Permalink
security #cve-2019-10912 [Cache][PHPUnit Bridge] Prevent destructors …
Browse files Browse the repository at this point in the history
…with side-effects from being unserialized (nicolas-grekas)

This PR was merged into the 3.4 branch.

Discussion
----------

[Cache][PHPUnit Bridge] Prevent destructors with side-effects from being unserialized

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Reported for `FilesystemCommonTrait` at https://www.intigriti.com/company/submission/CfDJ8Pja6NZvkpNCmx5vVyiGSn7yW8c1j4H0-cnAhIk6fbstOMm028X-XD1kmSuQkGB2n0cRyyVrA2yAiLN_I0EVilaKVLSiSa0UXZJGfN1h85vmk5c2dBBpu619r1YQEIjcXA

Commits
-------

4fb9752 Prevent destructors with side-effects from being unserialized
  • Loading branch information
nicolas-grekas committed Apr 16, 2019
2 parents 0a4ed67 + 4fb9752 commit d77e445
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php
Expand Up @@ -83,6 +83,16 @@ public function __construct(array $mockedNamespaces = array())
}
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
if (0 < $this->state) {
Expand Down
Expand Up @@ -64,6 +64,16 @@ public function getLogDir()
return $this->cacheDir;
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
$fs = new Filesystem();
Expand Down
10 changes: 10 additions & 0 deletions src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php
Expand Up @@ -116,6 +116,16 @@ public static function throwError($type, $message, $file, $line)
throw new \ErrorException($message, 0, $type, $file, $line);
}

public function __sleep()
{
throw new \BadMethodCallException('Cannot serialize '.__CLASS__);
}

public function __wakeup()
{
throw new \BadMethodCallException('Cannot unserialize '.__CLASS__);
}

public function __destruct()
{
if (method_exists(parent::class, '__destruct')) {
Expand Down

0 comments on commit d77e445

Please sign in to comment.