Vulnerabilities > CVE-2018-19789 - Unrestricted Upload of File with Dangerous Type vulnerability in multiple products

047910
CVSS 5.3 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
LOW
Integrity impact
NONE
Availability impact
NONE
network
low complexity
sensiolabs
debian
CWE-434
nessus

Summary

An issue was discovered in Symfony 2.7.x before 2.7.50, 2.8.x before 2.8.49, 3.x before 3.4.20, 4.0.x before 4.0.15, 4.1.x before 4.1.9, and 4.2.x before 4.2.1. When using the scalar type hint `string` in a setter method (e.g. `setName(string $name)`) of a class that's the `data_class` of a form, and when a file upload is submitted to the corresponding field instead of a normal text input, then `UploadedFile::__toString()` is called which will then return and disclose the path of the uploaded file. If combined with a local file inclusion issue in certain circumstances this could escalate it to a Remote Code Execution.

Vulnerable Configurations

Part Description Count
Application
Sensiolabs
229
OS
Debian
1

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Accessing Functionality Not Properly Constrained by ACLs
    In applications, particularly web applications, access to functionality is mitigated by the authorization framework, whose job it is to map ACLs to elements of the application's functionality; particularly URL's for web apps. In the case that the administrator failed to specify an ACL for a particular element, an attacker may be able to access it with impunity. An attacker with the ability to access functionality not properly constrained by ACLs can obtain sensitive information and possibly compromise the entire application. Such an attacker can access resources that must be available only to users at a higher privilege level, can access management sections of the application or can run queries for data that he is otherwise not supposed to.
  • Privilege Abuse
    An adversary is able to exploit features of the target that should be reserved for privileged users or administrators but are exposed to use by lower or non-privileged accounts. Access to sensitive information and functionality must be controlled to ensure that only authorized users are able to access these resources. If access control mechanisms are absent or misconfigured, a user may be able to access resources that are intended only for higher level users. An adversary may be able to exploit this to utilize a less trusted account to gain information and perform activities reserved for more trusted accounts. This attack differs from privilege escalation and other privilege stealing attacks in that the adversary never actually escalates their privileges but instead is able to use a lesser degree of privilege to access resources that should be (but are not) reserved for higher privilege accounts. Likewise, the adversary does not exploit trust or subvert systems - all control functionality is working as configured but the configuration does not adequately protect sensitive resources at an appropriate level.

Nessus

  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-8D3A9BDFF1.NASL
    description**Version 3.4.20** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) - bug #29436 [Cache] Fixed Memcached adapter doClear()to call flush() (raitocz) - bug #29441 [Routing] ignore trailing slash for non-GET requests (nicolas-grekas) - bug #29432 [DI] dont inline when lazy edges are found (nicolas-grekas) - bug #29413 [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required (rvitaliy) - bug #29424 [Routing] fix taking verb into account when redirecting (nicolas-grekas) - bug #29414 [DI] Fix dumping expressions accessing single-use private services (chalasr) - bug #29375 [Validator] Allow `ConstraintViolation::__toString()` to expose codes that are not null or emtpy strings (phansys) - bug #29376 [EventDispatcher] Fix eventListener wrapper loop in TraceableEventDispatcher (jderusse) - bug #29343 [Form] Handle all case variants of
    last seen2020-06-05
    modified2019-01-03
    plugin id120600
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120600
    titleFedora 29 : php-symfony3 (2018-8d3a9bdff1)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Fedora Security Advisory FEDORA-2018-8d3a9bdff1.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(120600);
      script_version("1.5");
      script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/04");
    
      script_cve_id("CVE-2018-19789", "CVE-2018-19790");
      script_xref(name:"FEDORA", value:"2018-8d3a9bdff1");
    
      script_name(english:"Fedora 29 : php-symfony3 (2018-8d3a9bdff1)");
      script_summary(english:"Checks rpm output for the updated package.");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Fedora host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "**Version 3.4.20** (2018-12-06)
    
      - security
        [CVE-2018-19790](https://symfony.com/cve-2018-19790)
        [Security\Http] detect bad redirect targets using
        backslashes (@xabbuh)
    
      - security
        [CVE-2018-19789](https://symfony.com/cve-2018-19789)
        [Form] Filter file uploads out of regular form types
        (@nicolas-grekas)
    
      - bug #29436 [Cache] Fixed Memcached adapter doClear()to
        call flush() (raitocz)
    
      - bug #29441 [Routing] ignore trailing slash for non-GET
        requests (nicolas-grekas)
    
      - bug #29432 [DI] dont inline when lazy edges are found
        (nicolas-grekas)
    
      - bug #29413 [Serializer] fixed DateTimeNormalizer to
        maintain microseconds when a different timezone required
        (rvitaliy)
    
      - bug #29424 [Routing] fix taking verb into account when
        redirecting (nicolas-grekas)
    
      - bug #29414 [DI] Fix dumping expressions accessing
        single-use private services (chalasr)
    
      - bug #29375 [Validator] Allow
        `ConstraintViolation::__toString()` to expose codes that
        are not null or emtpy strings (phansys)
    
      - bug #29376 [EventDispatcher] Fix eventListener wrapper
        loop in TraceableEventDispatcher (jderusse)
    
      - bug #29343 [Form] Handle all case variants of 'nan' when
        parsing a number (mwhudson, xabbuh)
    
      - bug #29355 [PropertyAccess] calculate cache keys for
        property setters depending on the value (xabbuh)
    
      - bug #29369 [DI] fix combinatorial explosion when
        analyzing the service graph (nicolas-grekas)
    
      - bug #29349 [Debug] workaround opcache bug mutating
        '$this' !?! (nicolas-grekas)
    
    Note that Tenable Network Security has extracted the preceding
    description block directly from the Fedora update system website.
    Tenable has attempted to automatically clean and format it as much as
    possible without introducing additional issues."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bodhi.fedoraproject.org/updates/FEDORA-2018-8d3a9bdff1"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://symfony.com/cve-2018-19789"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://symfony.com/cve-2018-19790"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected php-symfony3 package."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:N");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N");
      script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:fedoraproject:fedora:php-symfony3");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:fedoraproject:fedora:29");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2018/12/18");
      script_set_attribute(attribute:"patch_publication_date", value:"2018/12/17");
      script_set_attribute(attribute:"plugin_publication_date", value:"2019/01/03");
      script_set_attribute(attribute:"generated_plugin", value:"current");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Fedora Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/RedHat/release");
    if (isnull(release) || "Fedora" >!< release) audit(AUDIT_OS_NOT, "Fedora");
    os_ver = pregmatch(pattern: "Fedora.*release ([0-9]+)", string:release);
    if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, "Fedora");
    os_ver = os_ver[1];
    if (! preg(pattern:"^29([^0-9]|$)", string:os_ver)) audit(AUDIT_OS_NOT, "Fedora 29", "Fedora " + os_ver);
    
    if (!get_kb_item("Host/RedHat/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    cpu = get_kb_item("Host/cpu");
    if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
    if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "Fedora", cpu);
    
    
    flag = 0;
    if (rpm_check(release:"FC29", reference:"php-symfony3-3.4.20-1.fc29")) flag++;
    
    
    if (flag)
    {
      security_report_v4(
        port       : 0,
        severity   : SECURITY_WARNING,
        extra      : rpm_report_get()
      );
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "php-symfony3");
    }
    
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-84A1F77D89.NASL
    description**Version 4.1.9** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) - bug #29436 [Cache] Fixed Memcached adapter doClear()to call flush() (raitocz) - bug #29441 [Routing] ignore trailing slash for non-GET requests (nicolas-grekas) - bug #29444 [Workflow] Fixed BC break for Workflow metadata (lyrixx) - bug #29432 [DI] dont inline when lazy edges are found (nicolas-grekas) - bug #29413 [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required (rvitaliy) - bug #29424 [Routing] fix taking verb into account when redirecting (nicolas-grekas) - bug #29414 [DI] Fix dumping expressions accessing single-use private services (chalasr) - bug #29375 [Validator] Allow `ConstraintViolation::__toString()` to expose codes that are not null or emtpy strings (phansys) - bug #29376 [EventDispatcher] Fix eventListener wrapper loop in TraceableEventDispatcher (jderusse) - bug #29386 undeprecate the single-colon notation for controllers (fbourigault) - bug #29393 [DI] fix edge case in InlineServiceDefinitionsPass (nicolas-grekas) - bug #29380 [Routing] fix greediness of trailing slash (nicolas-grekas) - bug #29343 [Form] Handle all case variants of
    last seen2020-06-05
    modified2019-01-03
    plugin id120580
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120580
    titleFedora 29 : php-symfony4 (2018-84a1f77d89)
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DLA-1707.NASL
    descriptionSeveral security vulnerabilities have been discovered in symfony, a PHP web application framework. Numerous symfony components are affected: Security, bundle readers, session handling, SecurityBundle, HttpFoundation, Form, and Security\Http. The corresponding upstream advisories contain further details : [CVE-2017-16652] https://symfony.com/blog/cve-2017-16652-open-redirect-vulnerability-on -security-handlers [CVE-2017-16654] https://symfony.com/blog/cve-2017-16654-intl-bundle-readers-breaking-o ut-of-paths [CVE-2018-11385] https://symfony.com/blog/cve-2018-11385-session-fixation-issue-for-gua rd-authentication [CVE-2018-11408] https://symfony.com/blog/cve-2018-11408-open-redirect-vulnerability-on -security-handlers [CVE-2018-14773] https://symfony.com/blog/cve-2018-14773-remove-support-for-legacy-and- risky-http-headers [CVE-2018-19789] https://symfony.com/blog/cve-2018-19789-disclosure-of-uploaded-files-f ull-path [CVE-2018-19790] https://symfony.com/blog/cve-2018-19790-open-redirect-vulnerability-wh en-using-security-http For Debian 8
    last seen2020-06-01
    modified2020-06-02
    plugin id122721
    published2019-03-11
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/122721
    titleDebian DLA-1707-1 : symfony security update
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-4441.NASL
    descriptionMultiple vulnerabilities were discovered in the Symfony PHP framework which could lead to cache bypass, authentication bypass, information disclosure, open redirect, cross-site request forgery, deletion of arbitrary files, or arbitrary code execution.
    last seen2020-06-01
    modified2020-06-02
    plugin id124779
    published2019-05-13
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/124779
    titleDebian DSA-4441-1 : symfony - security update
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-8C06B6DEFD.NASL
    description**Version 2.8.49** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-05
    modified2019-01-03
    plugin id120596
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120596
    titleFedora 28 : php-symfony (2018-8c06b6defd)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-6EDF04D9D6.NASL
    description**Version 4.0.15** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-05
    modified2019-01-03
    plugin id120515
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120515
    titleFedora 28 : php-symfony4 (2018-6edf04d9d6)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-66547A8C14.NASL
    description**Version 3.4.20** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) - bug #29436 [Cache] Fixed Memcached adapter doClear()to call flush() (raitocz) - bug #29441 [Routing] ignore trailing slash for non-GET requests (nicolas-grekas) - bug #29432 [DI] dont inline when lazy edges are found (nicolas-grekas) - bug #29413 [Serializer] fixed DateTimeNormalizer to maintain microseconds when a different timezone required (rvitaliy) - bug #29424 [Routing] fix taking verb into account when redirecting (nicolas-grekas) - bug #29414 [DI] Fix dumping expressions accessing single-use private services (chalasr) - bug #29375 [Validator] Allow `ConstraintViolation::__toString()` to expose codes that are not null or emtpy strings (phansys) - bug #29376 [EventDispatcher] Fix eventListener wrapper loop in TraceableEventDispatcher (jderusse) - bug #29343 [Form] Handle all case variants of
    last seen2020-06-05
    modified2019-01-03
    plugin id120481
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120481
    titleFedora 28 : php-symfony3 (2018-66547a8c14)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2018-B38A4DD0C7.NASL
    description**Version 2.8.49** (2018-12-06) - security [CVE-2018-19790](https://symfony.com/cve-2018-19790) [Security\Http] detect bad redirect targets using backslashes (@xabbuh) - security [CVE-2018-19789](https://symfony.com/cve-2018-19789) [Form] Filter file uploads out of regular form types (@nicolas-grekas) Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-05
    modified2019-01-03
    plugin id120720
    published2019-01-03
    reporterThis script is Copyright (C) 2019-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/120720
    titleFedora 29 : php-symfony (2018-b38a4dd0c7)