# DRUPAL-CORE-2018-001: This security advisory fixes multiple vulnerabilities in both Drupal 7 and Drupal 8.

> Drupal core contains XSS and access bypass flaws allowing attackers to view restricted content or inject scripts, requiring upgrades.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 21 Feb 2018

## What is DRUPAL-CORE-2018-001?

DRUPAL-CORE-2018-001 is a cross-site scripting vulnerability in drupal/core, published on 21 Feb 2018. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.

### Official description

This security advisory fixes multiple vulnerabilities in both Drupal 7 and Drupal 8. See below for a list.

#### Comment reply form allows access to restricted content - Critical - Drupal 8 - CVE-2017-6926

Users with permission to post comments are able to view content and comments they do not have access to, and are also able to add comments to this content.

This vulnerability is mitigated by the fact that the comment system must be enabled and the attacker must have permission to post comments.

#### JavaScript cross-site scripting prevention is incomplete - Critical - Drupal 7 and Drupal 8 - CVE-2017-6927

Drupal has a `Drupal.checkPlain()` JavaScript function which is used to escape potentially dangerous text before outputting it to HTML (as JavaScript output is not auto-escaped by either Drupal 7 or Drupal 8). This function does not correctly handle all methods of injecting malicious HTML, leading to a cross-site scripting vulnerability under certain circumstances.

The PHP functions which Drupal provides for HTML escaping are not affected.

#### Private file access bypass - Moderately Critical - Drupal 7 - CVE-2017-6928

When using Drupal's private file system, Drupal will check to make sure a user has access to a file before allowing the user to view or download it. This check fails under certain conditions in which one module is trying to grant access to the file and another is trying to deny it, leading to an access bypass vulnerability.

This vulnerability is mitigated by the fact that it only occurs for unusual site configurations.

#### jQuery vulnerability with untrusted domains - Moderately Critical - Drupal 7 - CVE-2017-6929

A jQuery cross site scripting vulnerability is present when making Ajax requests to untrusted domains (the CVE for this issue in jQuery is CVE-2015-9251). This vulnerability is mitigated by the fact that it requires contributed or custom modules in order to exploit.

For Drupal 8, this vulnerability was already fixed in Drupal 8.4.0 in the Drupal core upgrade to jQuery 3. For Drupal 7, it is fixed in the current release (Drupal 7.57) for jQuery 1.4.4 (the version that ships with Drupal 7 core) as well as for other newer versions of jQuery that might be used on the site, for example using the [jQuery Update module](https://www.drupal.org/project/jquery_update).

#### Language fallback can be incorrect on multilingual sites with node access restrictions - Moderately Critical - Drupal 8 - CVE-2017-6930

When using node access controls with a multilingual site, Drupal marks the untranslated version of a node as the default fallback for access queries. This fallback is used for languages that do not yet have a translated version of the created node. This can result in an access bypass vulnerability.

This issue is mitigated by the fact that it only applies to sites that a) use the Content Translation module; and b) use a node access module such as Domain Access which implement `hook_node_access_records()`.

*Note that the update will mark the node access tables as needing a rebuild, which will take a long time on sites with a large number of nodes.*

#### Settings Tray access bypass - Moderately Critical - Drupal 8 - CVE-2017-6931

The Settings Tray module has a vulnerability that allows users to update certain data that they do not have the permissions for.

If you have implemented a Settings Tray form in contrib or a custom module, the correct access checks should be added. This release fixes the only two implementations in core, but does not harden against other such bypasses.

This vulnerability can be mitigated by disabling the Settings Tray module.

#### External link injection on 404 pages when linking to the current page - Less Critical - Drupal 7 - CVE-2017-6932

Drupal core has an external link injection vulnerability when the language switcher block is used. A similar vulnerability exists in various custom and contributed modules. This vulnerability could allow an attacker to trick users into unwillingly navigating to an external site.

## Which versions are affected by DRUPAL-CORE-2018-001?

1 open source package ship an affected version, including drupal/core.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `drupal/core` | Packagist | From 8.0.0 | 8.4.5 |

## How do I fix DRUPAL-CORE-2018-001?

Upgrade drupal/core to 8.4.5 or later.

## Is DRUPAL-CORE-2018-001 being exploited?

There is no known exploitation of DRUPAL-CORE-2018-001 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for DRUPAL-CORE-2018-001 and fix it if it is affected.

What it is: DRUPAL-CORE-2018-001 is a cross-site scripting vulnerability in drupal/core, published on 21 Feb 2018. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of DRUPAL-CORE-2018-001 in the wild and no public exploit code.

Affected packages and fixed versions:
- drupal/core (Packagist): affected from 8.0.0; fixed in 8.4.5

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/DRUPAL-CORE-2018-001/ (Markdown: https://insights.sbomify.com/DRUPAL-CORE-2018-001/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/DRUPAL-CORE-2018-001

---
From sbomify Insights: https://insights.sbomify.com/DRUPAL-CORE-2018-001/
Summaries are generated and may contain mistakes; the official description above is the record.
