drupal-core-2019-010

osv_packagist
Description

Drupal 8 core's `file_save_upload()` function does not strip the leading and trailing dot ('.') from filenames, like Drupal 7 did. Users with the ability to upload files with any extension in conjunction with contributed modules may be able to use this to upload system files such as .htaccess in order to bypass protections afforded by Drupal's default .htaccess file. After this fix, `file_save_upload()` now trims leading and trailing dots from filenames.

Timeline
Published
unknown
Last Modified
unknown
CVSS Details

CVSS details not available.

Affected Products

No product information available.

References
Linked Vulnerabilities

No linked vulnerabilities found.

{
  "affected": [
    {
      "database_specific": {
        "affected_versions": ">= 8.0.0 <8.7.11 || >= 8.8.0 <8.8.1",
        "source": "https://github.com/DrupalSecurityTeam/drupal-advisory-database/blob/main/advisories/core/DRUPAL-CORE-2019-010.json"
      },
      "package": {
        "ecosystem": "Packagist",
        "name": "drupal/core",
        "purl": "pkg:composer/drupal/core"
      },
      "ranges": [
        {
          "database_specific": {
            "constraint": ">= 8.0.0 <8.7.11"
          },
          "events": [
            {
              "introduced": "8.0.0"
            },
            {
              "fixed": "8.7.11"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "database_specific": {
            "constraint": ">= 8.8.0 <8.8.1"
          },
          "events": [
            {
              "introduced": "8.8.0"
            },
            {
              "fixed": "8.8.1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ],
      "versions": [
        "8.0.0",
        "8.0.1",
        "8.0.2",
        "8.0.3",
        "8.0.4",
        "8.0.5",
        "8.0.6",
        "8.1.0",
        "8.1.0-beta1",
        "8.1.0-beta2",
        "8.1.0-rc1",
        "8.1.1",
        "8.1.10",
        "8.1.2",
        "8.1.3",
        "8.1.4",
        "8.1.5",
        "8.1.6",
        "8.1.7",
        "8.1.8",
        "8.1.9",
        "8.2.0",
        "8.2.0-beta1",
        "8.2.0-beta2",
        "8.2.0-beta3",
        "8.2.0-rc1",
        "8.2.0-rc2",
        "8.2.1",
        "8.2.2",
        "8.2.3",
        "8.2.4",
        "8.2.5",
        "8.2.6",
        "8.2.7",
        "8.2.8",
        "8.3.0",
        "8.3.0-alpha1",
        "8.3.0-beta1",
        "8.3.0-rc1",
        "8.3.0-rc2",
        "8.3.1",
        "8.3.2",
        "8.3.3",
        "8.3.4",
        "8.3.5",
        "8.3.6",
        "8.3.7",
        "8.3.8",
        "8.3.9",
        "8.4.0",
        "8.4.0-alpha1",
        "8.4.0-beta1",
        "8.4.0-rc1",
        "8.4.0-rc2",
        "8.4.1",
        "8.4.2",
        "8.4.3",
        "8.4.4",
        "8.4.5",
        "8.4.6",
        "8.4.7",
        "8.4.8",
        "8.5.0",
        "8.5.0-alpha1",
        "8.5.0-beta1",
        "8.5.0-rc1",
        "8.5.1",
        "8.5.10",
        "8.5.11",
        "8.5.12",
        "8.5.13",
        "8.5.14",
        "8.5.15",
        "8.5.2",
        "8.5.3",
        "8.5.4",
        "8.5.5",
        "8.5.6",
        "8.5.7",
        "8.5.8",
        "8.5.9",
        "8.6.0",
        "8.6.0-alpha1",
        "8.6.0-beta1",
        "8.6.0-beta2",
        "8.6.0-rc1",
        "8.6.1",
        "8.6.10",
        "8.6.11",
        "8.6.12",
        "8.6.13",
        "8.6.14",
        "8.6.15",
        "8.6.16",
        "8.6.17",
        "8.6.18",
        "8.6.2",
        "8.6.3",
        "8.6.4",
        "8.6.5",
        "8.6.6",
        "8.6.7",
        "8.6.8",
        "8.6.9",
        "8.7.0",
        "8.7.0-alpha1",
        "8.7.0-alpha2",
        "8.7.0-beta1",
        "8.7.0-beta2",
        "8.7.0-rc1",
        "8.7.1",
        "8.7.10",
        "8.7.2",
        "8.7.3",
        "8.7.4",
        "8.7.5",
        "8.7.6",
        "8.7.7",
        "8.7.8",
        "8.7.9",
        "8.8.0"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "https://www.drupal.org/user/454444"
      ],
      "name": "Dan Reif"
    },
    {
      "contact": [
        "https://www.drupal.org/user/3521501"
      ],
      "name": "Filipe Reis"
    },
    {
      "contact": [
        "https://www.drupal.org/user/3623849"
      ],
      "name": "Rohit Kapur"
    },
    {
      "contact": [
        "https://www.drupal.org/user/3529990"
      ],
      "name": "mramydnei"
    }
  ],
  "details": "Drupal 8 core's `file_save_upload()` function does not strip the leading and trailing dot ('.') from filenames, like Drupal 7 did.\n\nUsers with the ability to upload files with any extension in conjunction with contributed modules may be able to use this to upload system files such as .htaccess in order to bypass protections afforded by Drupal's default .htaccess file.\n\nAfter this fix, `file_save_upload()` now trims leading and trailing dots from filenames.",
  "id": "DRUPAL-CORE-2019-010",
  "modified": "2026-09-19T19:05:59Z",
  "published": "2019-12-18T18:07:15Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://www.drupal.org/sa-core-2019-010"
    }
  ],
  "schema_version": "1.9.0"
}
View JSON API Download JSON