{
  "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"
}