Lookup for vulnerabilities affecting packages.

Vulnerability_idVCID-89qj-fyz5-tuhg
Summary
WPGraphQL Plugin vulnerable to Server Side Request Forgery (SSRF)
### Impact
Users with capabilities to upload media (editors and above) are succeptible to SSRF (Server-Side Request Forgery) when executing the `createMediaItem` Mutation. 

Authenticated users making GraphQL requests that execute the `createMediaItem` could pass executable paths in the mutations `filePath` argument that could give them unwarranted access to the server. 

It's recommended to update to WPGraphQL v1.14.6 or newer. If you're unable to do so, below is a snippet you can add to your functions.php (or similar) that filters the `createMediaItem` mutation's resolver. 

### Patches

- [v1.14.6](https://github.com/wp-graphql/wp-graphql/releases/tag/v1.14.6)
- https://github.com/wp-graphql/wp-graphql/pull/2840

### Workarounds
If you're unable to upgrade to v1.14.6 or higher, you should be able to use the following snippet in your functions.php to override the vulnerable resolver. 

This snippet has been tested as far back as WPGraphQL v0.15

```php
add_filter( 'graphql_pre_resolve_field', function( $nil, $source, $args, $context, \GraphQL\Type\Definition\ResolveInfo $info, $type_name, $field_key, $field, $field_resolver ) {

	if ( $info->fieldName !== 'createMediaItem' ) {
		return $nil;
	}

	$input = $args['input'] ?? null;

  if ( ! isset( $input['filePath'] ) ) {
		return $nil;
	}

	$uploaded_file_url = $input['filePath'];

	// Check that the filetype is allowed
	$check_file = wp_check_filetype( $uploaded_file_url );

	// if the file does not pass the check, throw an error
	if ( ! $check_file['ext'] || ! $check_file['type'] || ! wp_http_validate_url( $uploaded_file_url ) ) {
		throw new \GraphQL\Error\UserError( sprintf( __( 'Invalid filePath "%s"', 'wp-graphql' ), $input['filePath'] ) );
	}

	$protocol = wp_parse_url( $input['filePath'], PHP_URL_SCHEME );

	// prevent the filePath from being submitted with a non-allowed protocols
	$allowed_protocols = [ 'https', 'http', 'file' ];

	if ( ! in_array( $protocol, $allowed_protocols, true ) ) {
		throw new \GraphQL\Error\UserError( sprintf( __( 'Invalid protocol. "%1$s". Only "%2$s" allowed.', 'wp-graphql' ), $protocol, implode( '", "', $allowed_protocols ) ) );
	}

	return $nil;

}, 10, 9 );
```

### References

- https://patchstack.com/database/vulnerability/wp-graphql/wordpress-wp-graphql-plugin-1-14-5-server-side-request-forgery-ssrf-vulnerability
Aliases
0
alias CVE-2023-23684
1
alias GHSA-cfh4-7wq9-6pgg
Fixed_packages
0
url pkg:composer/wp-graphql/wp-graphql@1.14.6
purl pkg:composer/wp-graphql/wp-graphql@1.14.6
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/wp-graphql/wp-graphql@1.14.6
Affected_packages
0
url pkg:composer/wp-graphql/wp-graphql@1.14.5
purl pkg:composer/wp-graphql/wp-graphql@1.14.5
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-89qj-fyz5-tuhg
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/wp-graphql/wp-graphql@1.14.5
References
0
reference_url https://api.first.org/data/v1/epss?cve=CVE-2023-23684
reference_id
reference_type
scores
0
value 0.00174
scoring_system epss
scoring_elements 0.38506
published_at 2026-06-04T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2023-23684
1
reference_url https://github.com/wp-graphql/wp-graphql
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/wp-graphql/wp-graphql
2
reference_url https://github.com/wp-graphql/wp-graphql/pull/2840
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/wp-graphql/wp-graphql/pull/2840
3
reference_url https://github.com/wp-graphql/wp-graphql/releases/tag/v1.14.6
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/wp-graphql/wp-graphql/releases/tag/v1.14.6
4
reference_url https://nvd.nist.gov/vuln/detail/CVE-2023-23684
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2023-23684
5
reference_url https://patchstack.com/database/vulnerability/wp-graphql/wordpress-wp-graphql-plugin-1-14-5-server-side-request-forgery-ssrf-vulnerability?_s_id=cve
reference_id
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://patchstack.com/database/vulnerability/wp-graphql/wordpress-wp-graphql-plugin-1-14-5-server-side-request-forgery-ssrf-vulnerability?_s_id=cve
6
reference_url https://github.com/advisories/GHSA-cfh4-7wq9-6pgg
reference_id GHSA-cfh4-7wq9-6pgg
reference_type
scores
url https://github.com/advisories/GHSA-cfh4-7wq9-6pgg
7
reference_url https://github.com/wp-graphql/wp-graphql/security/advisories/GHSA-cfh4-7wq9-6pgg
reference_id GHSA-cfh4-7wq9-6pgg
reference_type
scores
0
value 6.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/wp-graphql/wp-graphql/security/advisories/GHSA-cfh4-7wq9-6pgg
Weaknesses
0
cwe_id 918
name Server-Side Request Forgery (SSRF)
description The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Exploits
Severity_range_score4.0 - 6.9
Exploitability0.5
Weighted_severity6.2
Risk_score3.1
Resource_urlhttp://public2.vulnerablecode.io/vulnerabilities/VCID-89qj-fyz5-tuhg