CVE-2021-21276 (PHP, published 2021-02-01T15:15Z)
Description: value: Polr is an open source URL shortener. in Polr before version 2.3.0, a vulnerability in the setup process allows attackers to gain admin access to site instances, even if they do not possess an existing account. This vulnerability exists regardless of users' settings. If an attacker crafts a request with specific cookie headers to the /setup/finish endpoint, they may be able to obtain admin privileges on the instance. This is caused by a loose comparison (==) in SetupController that is susceptible to attack. The project has been patched to ensure that a strict comparison (===) is used to verify the setup key, and that /setup/finish verifies that no users table exists before performing any migrations or provisioning any new accounts. This is fixed in version 2.3.0. Users can patch this vulnerability without upgrading by adding abort(404) to the very first line of finishSetup in SetupController.php.
Severity: MEDIUM (CVSS v3 base score: 9.3)
Weakness: CWE-863 \u2014 Incorrect Authorization
The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.
Repository: https://github.com/cydrobolt/polr
Files changed:
app/Http/Controllers/SetupController.php
composer.json
composer.lock
Commit message: Merge pull request from GHSA-vg6w-8w9v-xxqc



Vulnerable code:
        // get data from cookie, decode JSON
        $transaction_authorised = env('TMP_SETUP_AUTH_KEY') == $setup_finish_args->setup_auth_key;
        "doctrine/dbal": "^2.5",
    "content-hash": "09b953d160500e6dfbcaa6c916371495",
            "version": "1.2.8",
                "reference": "8a7ecad675253e4654ea05505233285377405215"
                "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215",
                "reference": "8a7ecad675253e4654ea05505233285377405215",
                "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
                    "dev-master": "1.x-dev"
            "time": "2020-08-23T12:54:47+00:00"
            "name": "doctrine/dbal",
            "version": "2.11.1",
                "url": "https://github.com/doctrine/dbal.git",
                "reference": "6e6903cd5e3a5be60a79439e3ee8fe126f78fe86"
                "url": "https://api.github.com/repos/doctrine/dbal/zipball/6e6903cd5e3a5be60a79439e3ee8fe126f78fe86",
                "reference": "6e6903cd5e3a5be60a79439e3ee8fe126f78fe86",
                "doctrine/cache": "^1.0",
                "doctrine/event-manager": "^1.0",
                "ext-pdo": "*",
                "php": "^7.3"
                "doctrine/coding-standard": "^8.1",
                "jetbrains/phpstorm-stubs": "^2019.1",
                "nikic/php-parser": "^4.4",
                "phpstan/phpstan": "^0.12.40",
                "phpunit/phpunit": "^9.3",
                "psalm/plugin-phpunit": "^0.10.0",
                "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
                "vimeo/psalm": "^3.14.2"
            },
            "suggest": {
                "symfony/console": "For helpful console commands such as SQL execution and import of files."
            "bin": [
                "bin/doctrine-dbal"
            ],
            "extra": {
                "branch-alias": {
                    "dev-master": "4.0.x-dev"
                }
            },
                    "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
                }
            ],
            "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
            "homepage": "https://www.doctrine-project.org/projects/dbal.html",
            "keywords": [
                "abstraction",
                "database",
                "db2",
                "dbal",
                "mariadb",
                "mssql",
                "mysql",
                "oci8",
                "oracle",
                "pdo",
                "pgsql",
                "postgresql",
                "queryobject",
                "sasql",
                "sql",
                "sqlanywhere",
                "sqlite",
                "sqlserver",
                "sqlsrv"
            ],
            "funding": [
                {
                    "url": "https://www.doctrine-project.org/sponsorship.html",
                    "type": "custom"
                    "url": "https://www.patreon.com/phpdoctrine",
                    "type": "patreon"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
                    "type": "tidelift"
            "time": "2020-09-27T04:09:41+00:00"
            "name": "doctrine/event-manager",
            "version": "1.1.1",
                "url": "https://github.com/doctrine/event-manager.git",
                "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
                "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
                "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
                "php": "^7.1 || ^8.0"
            },
            "conflict": {
                "doctrine/common": "<2.9@dev"
                "doctrine/coding-standard": "^6.0",
                "phpunit/phpunit": "^7.0"
                    "dev-master": "1.0.x-dev"
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com"
                },
                },
                {
                    "name": "Marco Pivetta",
                    "email": "ocramius@gmail.com"
            "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
            "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
                "event",
                "event dispatcher",
                "event manager",
                "event system",
                "events"
            "funding": [
                    "url": "https://www.doctrine-project.org/sponsorship.html",
                    "type": "custom"
                    "url": "https://www.patreon.com/phpdoctrine",
                    "type": "patreon"
                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
                    "type": "tidelift"
            "time": "2020-05-29T18:28:51+00:00"
            "version": "v1.8.0",
                "reference": "b566d429ac9aec10594b0935be8ff38302f8d5c8"
                "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/b566d429ac9aec10594b0935be8ff38302f8d5c8",
                "reference": "b566d429ac9aec10594b0935be8ff38302f8d5c8",
                "ext-maxminddb": "<1.8.0,>=2.0.0"
                "friendsofphp/php-cs-fixer": "2.*",
            "time": "2020-10-01T17:30:21+00:00"
            "version": "v0.8.0",
                "reference": "ba67d9532cfaf499bd71774b8170d05df4f75fb7"
                "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/ba67d9532cfaf499bd71774b8170d05df4f75fb7",
                "reference": "ba67d9532cfaf499bd71774b8170d05df4f75fb7",
            "time": "2020-10-01T15:28:36+00:00"
            "version": "1.25.5",
                "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
                "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
                "php-parallel-lint/php-parallel-lint": "^1.0",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.0.x-dev"
                }
            },
            "time": "2020-07-23T08:35:51+00:00"
            "version": "v4.10.2",
                "reference": "658f1be311a230e0907f5dfe0213742aff0596de"
                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de",
                "reference": "658f1be311a230e0907f5dfe0213742aff0596de",
            "time": "2020-09-26T10:30:38+00:00"
            "version": "v3.4.45",
                "reference": "9ccf6e78077a3fc1596e6c7b5958008965a11518"
                "url": "https://api.github.com/repos/symfony/css-selector/zipball/9ccf6e78077a3fc1596e6c7b5958008965a11518",
                "reference": "9ccf6e78077a3fc1596e6c7b5958008965a11518",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.4-dev"
                }
            },
            "time": "2020-03-16T08:31:04+00:00"
            "version": "v1.18.1",
                "reference": "1c302646f6efc070cd46856e600e5e0684d6b454"
                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454",
                "reference": "1c302646f6efc070cd46856e600e5e0684d6b454",
                "php": ">=5.3.3"
                    "dev-master": "1.18-dev"
            "time": "2020-07-14T12:35:20+00:00"
            "version": "v1.18.1",
                "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a"
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/a6977d63bf9a0ad4c65cd352709e230876f9904a",
                "reference": "a6977d63bf9a0ad4c65cd352709e230876f9904a",
                "php": ">=5.3.3"
                    "dev-master": "1.18-dev"
            "time": "2020-07-14T12:35:20+00:00"
            "version": "v1.18.1",
                "reference": "13df84e91cd168f247c2f2ec82cc0fa24901c011"
                "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/13df84e91cd168f247c2f2ec82cc0fa24901c011",
                "reference": "13df84e91cd168f247c2f2ec82cc0fa24901c011",
                "php": ">=5.3.3",
                "symfony/polyfill-util": "~1.0"
            "type": "library",
                    "dev-master": "1.18-dev"
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Php56\\": ""
                },
                "files": [
                    "bootstrap.php"
                ]
            },
            "time": "2020-07-14T12:35:20+00:00"
        },
        {
            "name": "symfony/polyfill-util",
            "version": "v1.18.1",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/polyfill-util.git",
                "reference": "46b910c71e9828f8ec2aa7a0314de1130d9b295a"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/46b910c71e9828f8ec2aa7a0314de1130d9b295a",
                "reference": "46b910c71e9828f8ec2aa7a0314de1130d9b295a",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3.3"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.18-dev"
                },
                "thanks": {
                    "name": "symfony/polyfill",
                    "url": "https://github.com/symfony/polyfill"
                }
            },
            "autoload": {
                "psr-4": {
                    "Symfony\\Polyfill\\Util\\": ""
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Nicolas Grekas",
                    "email": "p@tchwork.com"
                },
                {
                    "name": "Symfony Community",
                    "homepage": "https://symfony.com/contributors"
                }
            ],
            "description": "Symfony utilities for portability of PHP codes",
            "homepage": "https://symfony.com",
            "keywords": [
                "compat",
                "compatibility",
                "polyfill",
                "shim"
            ],
            "funding": [
                {
                    "url": "https://symfony.com/sponsor",
                    "type": "custom"
                },
                {
                    "url": "https://github.com/fabpot",
                    "type": "github"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                    "type": "tidelift"
                }
            ],
            "time": "2020-07-14T12:35:20+00:00"
            "version": "1.3.1",
                "reference": "f350df0268e904597e3bd9c4685c53e0e333feea"
                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea",
                "reference": "f350df0268e904597e3bd9c4685c53e0e333feea",
                "doctrine/coding-standard": "^6.0",
                "phpbench/phpbench": "^0.13",
                "phpstan/phpstan-phpunit": "^0.11",
                "phpstan/phpstan-shim": "^0.11",
                "phpunit/phpunit": "^7.0"
            "extra": {
                "branch-alias": {
                    "dev-master": "1.2.x-dev"
                }
            },
                    "homepage": "http://ocramius.github.com/"
            "time": "2020-05-29T17:27:14+00:00"
            "version": "v1.9.1",
                "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f"
                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f",
                "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f",
            "time": "2019-12-12T13:22:17+00:00"
            "version": "1.10.1",
                "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5"
                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
                "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
            "time": "2020-06-29T13:22:24+00:00"
            "version": "1.0.1",
                "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
                "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
                "php": "^5.6 || ^7.0"
                "phpunit/phpunit": "^5.7 || ^6.0"
            "time": "2017-03-04T06:30:41+00:00"
                "url": "https://github.com/webmozart/assert.git",
                "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",

Fixed code:
use Illuminate\Support\Facades\Schema;
            // Abort if setup arguments are missing.
        $transaction_authorised = env('TMP_SETUP_AUTH_KEY') === $setup_finish_args->setup_auth_key;
        $usersTableExists = Schema::hasTable('users');

        if ($usersTableExists) {
            // If the users table exists, then the setup process may have already been completed before.
            abort(403, 'Setup has been completed already.');
        }

        "doctrine/dbal": "2.5.11",
    "content-hash": "aeddc826b32f4e3b68467f58a5a0fd10",
            "version": "1.2.9",
                "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5"
                "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
                "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
                "phpstan/phpstan": "^0.12.55",
                "symfony/phpunit-bridge": "^4.2 || ^5",
                    "dev-main": "1.x-dev"
            "time": "2021-01-12T12:10:35+00:00"
        {
            "name": "doctrine/annotations",
            "version": "1.11.1",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/annotations.git",
                "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
                "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
                "shasum": ""
            },
            "require": {
                "doctrine/lexer": "1.*",
                "ext-tokenizer": "*",
                "php": "^7.1 || ^8.0"
            },
            "require-dev": {
                "doctrine/cache": "1.*",
                "doctrine/coding-standard": "^6.0 || ^8.1",
                "phpstan/phpstan": "^0.12.20",
                "phpunit/phpunit": "^7.5 || ^9.1.5"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.11.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                },
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com"
                }
            ],
            "description": "Docblock Annotations Parser",
            "homepage": "https://www.doctrine-project.org/projects/annotations.html",
            "keywords": [
                "annotations",
                "docblock",
                "parser"
            ],
            "time": "2020-10-26T10:28:16+00:00"
        },
            "name": "doctrine/collections",
            "version": "1.6.7",
                "url": "https://github.com/doctrine/collections.git",
                "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a"
                "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a",
                "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a",
                "php": "^7.1.3 || ^8.0"
                "doctrine/coding-standard": "^6.0",
                "phpstan/phpstan-shim": "^0.9.2",
                "phpunit/phpunit": "^7.0",
                "vimeo/psalm": "^3.8.1"
                    "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com"
            "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
            "homepage": "https://www.doctrine-project.org/projects/collections.html",
            "keywords": [
                "array",
                "collections",
                "iterators",
                "php"
            ],
            "time": "2020-07-27T17:53:49+00:00"
            "name": "doctrine/common",
            "version": "v2.7.3",
                "url": "https://github.com/doctrine/common.git",
                "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
                "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
                "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
                "doctrine/annotations": "1.*",
                "doctrine/cache": "1.*",
                "doctrine/collections": "1.*",
                "doctrine/inflector": "1.*",
                "doctrine/lexer": "1.*",
                "php": "~5.6|~7.0"
                "phpunit/phpunit": "^5.4.6"
                    "dev-master": "2.7.x-dev"
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com"
                },
            "description": "Common Library for Doctrine projects",
            "homepage": "http://www.doctrine-project.org",
                "annotations",
                "collections",
                "eventmanager",
                "persistence",
                "spl"
            "time": "2017-07-22T08:35:12+00:00"
        },
        {
            "name": "doctrine/dbal",
            "version": "v2.5.11",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/dbal.git",
                "reference": "1b1effbddbdc0f40d1c8f849f44bcddac4f52a48"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/dbal/zipball/1b1effbddbdc0f40d1c8f849f44bcddac4f52a48",
                "reference": "1b1effbddbdc0f40d1c8f849f44bcddac4f52a48",
                "shasum": ""
            },
            "require": {
                "doctrine/common": ">=2.4,<2.8-dev",
                "php": ">=5.3.2"
            },
            "require-dev": {
                "phpunit/phpunit": "4.*",
                "symfony/console": "2.*||^3.0"
            },
            "suggest": {
                "symfony/console": "For helpful console commands such as SQL execution and import of files."
            },
            "bin": [
                "bin/doctrine-dbal"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "2.5.x-dev"
                }
            },
            "autoload": {
                "psr-0": {
                    "Doctrine\\DBAL\\": "lib/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                    "name": "Benjamin Eberlei",
                    "email": "kontakt@beberlei.de"
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com"
                },
                {
                    "name": "Jonathan Wage",
                    "email": "jonwage@gmail.com"
            "description": "Database Abstraction Layer",
            "homepage": "http://www.doctrine-project.org",
            "keywords": [
                "database",
                "dbal",
                "persistence",
                "queryobject"
            ],
            "time": "2017-02-04T21:20:13+00:00"
        {
            "name": "doctrine/lexer",
            "version": "1.2.1",
            "source": {
                "type": "git",
                "url": "https://github.com/doctrine/lexer.git",
                "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
                "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
                "shasum": ""
            },
            "require": {
                "php": "^7.2 || ^8.0"
            },
            "require-dev": {
                "doctrine/coding-standard": "^6.0",
                "phpstan/phpstan": "^0.11.8",
                "phpunit/phpunit": "^8.2"
            },
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "1.2.x-dev"
                }
            },
            "autoload": {
                "psr-4": {
                    "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Guilherme Blanco",
                    "email": "guilhermeblanco@gmail.com"
                },
                {
                    "name": "Roman Borschel",
                    "email": "roman@code-factory.org"
                },
                {
                    "name": "Johannes Schmitt",
                    "email": "schmittjoh@gmail.com"
                }
            ],
            "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
            "homepage": "https://www.doctrine-project.org/projects/lexer.html",
            "keywords": [
                "annotations",
                "docblock",
                "lexer",
                "parser",
                "php"
            ],
            "funding": [
                {
                    "url": "https://www.doctrine-project.org/sponsorship.html",
                    "type": "custom"
                },
                {
                    "url": "https://www.patreon.com/phpdoctrine",
                    "type": "patreon"
                },
                {
                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
                    "type": "tidelift"
                }
            ],
            "time": "2020-05-25T17:44:05+00:00"
        },
            "version": "v1.9.0",
                "reference": "9ee9ba9ee287b119e9f5a8e8dbfea0b49647cec4"
                "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/9ee9ba9ee287b119e9f5a8e8dbfea0b49647cec4",
                "reference": "9ee9ba9ee287b119e9f5a8e8dbfea0b49647cec4",
                "ext-maxminddb": "<1.9.0,>=2.0.0"
                "friendsofphp/php-cs-fixer": "*",
            "time": "2021-01-07T21:15:29+00:00"
            "version": "v0.8.1",
                "reference": "32f274051c543fc865e5a84d3a2c703913641ea8"
                "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/32f274051c543fc865e5a84d3a2c703913641ea8",
                "reference": "32f274051c543fc865e5a84d3a2c703913641ea8",
            "time": "2020-11-02T17:00:53+00:00"
            "version": "1.26.0",
                "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
                "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
                "phpstan/phpstan": "^0.12.59",
            "time": "2020-12-14T12:56:38+00:00"
            "version": "v4.10.4",
                "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
                "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
            "time": "2020-12-20T10:01:03+00:00"
            "version": "v3.4.47",
                "reference": "da3d9da2ce0026771f5fe64cb332158f1bd2bc33"
                "url": "https://api.github.com/repos/symfony/css-selector/zipball/da3d9da2ce0026771f5fe64cb332158f1bd2bc33",
                "reference": "da3d9da2ce0026771f5fe64cb332158f1bd2bc33",
            "time": "2020-10-24T10:57:07+00:00"
            "version": "v1.22.0",
                "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
                "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
                "php": ">=7.1"
                    "dev-main": "1.22-dev"
            "time": "2021-01-07T16:49:33+00:00"
            "version": "v1.22.0",
                "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
                "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
                "php": ">=7.1"
                    "dev-main": "1.22-dev"
            "time": "2021-01-07T16:49:33+00:00"
            "version": "v1.20.0",
                "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675"
                "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
                "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
                "php": ">=7.1"
            "type": "metapackage",
                    "dev-main": "1.20-dev"
            "time": "2020-10-23T14:02:19+00:00"
            "version": "1.4.0",
                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
                "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
                "doctrine/coding-standard": "^8.0",
                "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
                "phpstan/phpstan": "^0.12",
                "phpstan/phpstan-phpunit": "^0.12",
                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
                    "homepage": "https://ocramius.github.io/"
            "time": "2020-11-10T18:47:58+00:00"
            "version": "v1.9.2",
                "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e"
                "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
                "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
            "abandoned": true,
            "time": "2020-12-11T09:56:16+00:00"
            "version": "1.10.2",
                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
                "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
            "time": "2020-11-13T09:40:50+00:00"
            "version": "1.0.2",
                "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
                "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
                "php": ">=5.6"
                "phpunit/phpunit": "^8.5"
            "funding": [
                {
                    "url": "https://github.com/sebastianbergmann",
                    "type": "github"
                }
            ],
            "time": "2020-11-30T08:15:22+00:00"
                "url": "https://github.com/webmozarts/assert.git",
                "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",