VYPR
High severityNVD Advisory· Published May 30, 2024

Symfony vulnerable to denial of service via a malicious HTTP Host header

CVE-2014-5244

Description

All 2.0.X, 2.1.X, 2.2.X, 2.3.X, 2.4.X, and 2.5.X versions of the Symfony HttpFoundation component are affected by this security issue.

This issue has been fixed in Symfony 2.3.19, 2.4.9, and 2.5.4. Note that no fixes are provided for Symfony 2.0, 2.1, and 2.2 as they are not maintained anymore.

Description When an arbitrarily long hostname is sent by a client, its parsing in Request::getHost() can lead to a DoS attack, due to the way we validate the hostname via a regular expression.

Resolution The regular expression used to parse and validate the hostname from the HTTP request has been modified to avoid too much sensitivity to the submitted value length.

The patch for this issue is available here: https://github.com/symfony/symfony/pull/11828

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
symfony/http-foundationPackagist
>= 2.0.0, < 2.3.192.3.19
symfony/http-foundationPackagist
>= 2.4.0, < 2.4.92.4.9
symfony/http-foundationPackagist
>= 2.5.0, < 2.5.42.5.4
symfony/symfonyPackagist
>= 2.0.0, < 2.3.192.3.19
symfony/symfonyPackagist
>= 2.4.0, < 2.4.92.4.9
symfony/symfonyPackagist
>= 2.5.0, < 2.5.42.5.4

Patches

1
1ee96a8b1b09

Test examples from Drupal SA-CORE-2014-003

https://github.com/symfony/symfonyLee RowlandsAug 22, 2014via ghsa
1 file changed · +18 4
  • src/Symfony/Component/HttpFoundation/Tests/RequestTest.php+18 4 modified
    @@ -1595,9 +1595,11 @@ public function testTrustedHosts()
             Request::setTrustedHosts(array());
         }
     
    -    public function testVeryLongHost()
    +    /**
    +     * @dataProvider getLongHostNames
    +     */
    +    public function testVeryLongHosts($host)
         {
    -        $host = 'a'.str_repeat('.a', 40000);
             $start = microtime(true);
     
             $request = Request::create('/');
    @@ -1609,13 +1611,15 @@ public function testVeryLongHost()
         /**
          * @dataProvider getHostValidities
          */
    -    public function testHostValidity($host, $isValid)
    +    public function testHostValidity($host, $isValid, $expectedHost = null, $expectedPort = null)
         {
             $request = Request::create('/');
             $request->headers->set('host', $host);
     
             if ($isValid) {
    -            $this->assertSame($host, $request->getHost());
    +            $this->assertSame($expectedHost ?: $host, $request->getHost());
    +            if ($expectedPort) {
    +                $this->assertSame($expectedPort, $request->getPort());
                 }
             } else {
                 $this->setExpectedException('UnexpectedValueException', 'Invalid Host');
    @@ -1631,6 +1635,16 @@ public function getHostValidities()
                 array('a.', true),
                 array("\xE9", false),
                 array('[::1]', true),
    +            array('[::1]:80', true, '[::1]', 80),
    +            array(str_repeat('.', 101), false),
    +        );
    +    }
    +
    +    public function getLongHostNames()
    +    {
    +        return array(
    +            array('a'.str_repeat('.a', 40000)),
    +            array(str_repeat(':', 101)),
             );
         }
     }
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

7

News mentions

0

No linked articles in our index yet.