Loading...
Skip to main content

CVE-2025-27088 — Vulnerability in...

HIGH

S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation

Published February 20, 2025Updated September 10, 2026Source: osv

Summary

### Summary A Reflected Cross-site Scripting (XSS) vulnerability enables attackers to create malicious URLs that, when visited, inject scripts into the web application. This can lead to session hijacking or phishing attacks on a trusted domain, posing a high risk to all users. ### Details _Give all details on the vulnerability. Pointing to the incriminated source code is very helpful for the maintainer._ It's possible to inject html elements, including scripts through the [folder-list template](https://github.com/oxyno-zeta/s3-proxy/blob/master/templates/folder-list.tpl#L19C21-L19C38). It seems like the `.Request.URL.Path` variable is not escaped. I did some research and found it might be due to the `text/template` import being used in [the template implementation](https://github.com/oxyno-zeta/s3-proxy/blob/master/pkg/s3-proxy/utils/templateutils/template.go#L8), instead of the [safer](https://pkg.go.dev/html/template) `html/template`. ### PoC _Complete instructions, including specific configuration details, to reproduce the vulnerability._ Using the [default template configuration](https://oxyno-zeta.github.io/s3-proxy/configuration/structure/#targettemplateconfig), the vulnerability can be reproduced with the following steps. 1. Navigate to `https://your-s3-proxy.com/path-not-found` and confirm the page looks as follows: ![image](https://github.com/user-attachments/assets/1c87e274-18ec-4eb3-94fe-25bb1c0abf37) 2. Try inserting an HTML element by changing `/path-not-found` to `/<img src="x">` and confirm the page looks as follows: ![image](https://github.com/user-attachments/assets/19c80f46-c406-4e5f-81f3-16103bc963b8) 3. Now it should be possible to run any JavaScript by manipulating the [`onerror` property of the img element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#image_loading_errors). This should make the link look like `https://your-s3-proxy.com/<img src="x" onerror="alert(1)">`. Confirm that going to this URL will in fact shows an alert in the browser. ### Impact The affected template allows users to interact with the URL path provided by the `Request.URL.Path` variable, which is then rendered directly into the HTML without proper sanitization or escaping. This can be abused by attackers who craft a malicious URL containing injected HTML or JavaScript. When users visit such a URL, the malicious script will be executed in the user's context, leading to potential risks such as: - **Session Hijacking**: Malicious scripts could be used to steal session cookies or other sensitive information. - **Phishing Attacks**: JavaScript could be injected to trick users into submitting sensitive information, such as login credentials. This vulnerability can be exploited by attackers who craft URLs containing malicious payloads, which would then execute in the user's browser when they access the affected page. This poses a **high** risk to all users who visit such URLs.

Advisory Timeline

  • First published February 20, 2025 (599 days ago).
  • Last revised September 10, 2026 — 566 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Go
Update github.com/oxyno-zeta/s3-proxy/cmd/s3-proxy to 0.0.0-20250220214310-c611c741ed48 or later
go get github.com/oxyno-zeta/s3-proxy/cmd/s3-proxy@v0.0.0-20250220214310-c611c741ed48

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: go (1).

PackageEcosystemAffectedFixed In
github.com/oxyno-zeta/s3-proxy/cmd/s3-proxy
go
All versions0.0.0-20250220214310-c611c741ed48

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-79
    Cross-site Scripting (XSS)MITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 9.3 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
P
Scope
—
Confidentiality
—
Integrity
—
Availability
—

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N

Frequently Asked Questions

What is CVE-2025-27088?
S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation This vulnerability has been assigned a severity rating of HIGH (CVSS score: 9.3/10).
How do I check if my project is affected by CVE-2025-27088?
CVE-2025-27088 affects github.com/oxyno-zeta/s3-proxy/cmd/s3-proxy. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2025-27088 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
9.3

Exploitation is straightforward and causes maximum impact. Patch immediately.

Also Known As

GHSA-pp9m-qf39-hxjc
GO-2025-3477

Related CVEs

  • CVE-2026-42882
    CRITICAL

    S3-Proxy has Security Issues in its Resource Path Matching Implementation

  • CVE-2026-107809
    HIGH

    Nginx-UI AuthRequired token cookie fallback enables CSRF against management APIs

  • CVE-2026-107813
    HIGH

    Nginx UI: Incomplete fix of CVE-2026-84315 - the api/cluster router was not - wrapped in RequireSecureSession, so those sensitive mutations run without OTP step-up

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies