CVE-2025-27088
Reflected Cross-site Scripting (XSS) in template implementation in oxyno-zeta/s3-proxy
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. In affected versions 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 moderate risk to all users. It's possible to inject html elements, including scripts through the folder-list template. 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. This issue has been addressed in version 4.18.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.4
Reflected Cross-site Scripting (XSS) in template implementation in oxyno-zeta/s3-proxy
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. In affected versions 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 moderate risk to all users. It's possible to inject html elements, including scripts through the folder-list template. 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. This issue has been addressed in version 4.18.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-27088- CVSS 4.0
- 8.4 High
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 - Weakness
- CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2025-4517
8.4
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. In affected versions 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 moderate risk to all users. It's possible to inject html elements, including scripts through the folder-list template. 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. This issue has been addressed in version 4.18.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
EUVD-2025-4517- CVSS 4.0
- 8.4 High
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-pp9m-qf39-hxjc
8.4
S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation
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. 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, instead of the safer html/template.
PoC
Complete instructions, including specific configuration details, to reproduce the vulnerability. Using the default template configuration, the vulnerability can be reproduced with the following steps.
-
Navigate to
https://your-s3-proxy.com/path-not-foundand confirm the page looks as follows: -
Try inserting an HTML element by changing
/path-not-foundto/<img src="x">and confirm the page looks as follows: -
Now it should be possible to run any JavaScript by manipulating the
onerrorproperty of the img element. This should make the link look likehttps://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.
- Record
GHSA-pp9m-qf39-hxjc- CVSS 4.0
- 8.4 High
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 - Weakness
- CWE-79
- Updated
- 2026-11-02
NVD
8.4
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. In affected versions 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 moderate risk to all users. It's possible to inject html elements, including scripts through the folder-list template. 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. This issue has been addressed in version 4.18.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-27088- CVSS 4.0
- 8.4 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSV
8.4
Reflected Cross-site Scripting (XSS) in template implementation in oxyno-zeta/s3-proxy
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. In affected versions 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 moderate risk to all users. It's possible to inject html elements, including scripts through the folder-list template. 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. This issue has been addressed in version 4.18.1 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2025-27088- CVSS 4.0
- 8.4 High
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 - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVGHSA-pp9m-qf39-hxjc
8.4
S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation
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. 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, instead of the safer html/template.
PoC
Complete instructions, including specific configuration details, to reproduce the vulnerability. Using the default template configuration, the vulnerability can be reproduced with the following steps.
-
Navigate to
https://your-s3-proxy.com/path-not-foundand confirm the page looks as follows: -
Try inserting an HTML element by changing
/path-not-foundto/<img src="x">and confirm the page looks as follows: -
Now it should be possible to run any JavaScript by manipulating the
onerrorproperty of the img element. This should make the link look likehttps://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.
- Record
GHSA-pp9m-qf39-hxjc- CVSS 4.0
- 8.4 High
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 - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVGO-2025-3477 No score
S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation in github.com/oxyno-zeta/s3-proxy
S3-Proxy allows Reflected Cross-site Scripting (XSS) in template implementation in github.com/oxyno-zeta/s3-proxy
- Record
GO-2025-3477- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:14889-1 No score
govulncheck-vulndb-0.0.20250312T181707-1.1 on GA media
These are all security issues fixed in the govulncheck-vulndb-0.0.20250312T181707-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:14889-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/oxyno-zeta/s3-proxy/cmd/s3-proxyGo |
through 0.0.0-20250212215955-2873011f7c42 | 0.0.0-20250220214310-c611c741ed48 |
github.com/oxyno-zeta/s3-proxy/cmd/s3-proxyGo |
before 0.0.0-20250220214310-c611c741ed48 | 0.0.0-20250220214310-c611c741ed48 |
github.com/oxyno-zeta/s3-proxyGo |
before 0.0.0-20250220214310-c611c741ed48 | 0.0.0-20250220214310-c611c741ed48 |
govulncheck-vulndbopenSUSE:Tumbleweed From an advisory covering 31 CVEs |
before 0.0.20250312T181707-1.1 | 0.0.20250312T181707-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-27088 is a high vulnerability (CVSS 8.4) in Oxyno-zeta S3-proxy, published February 20, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.50%, the 42nd percentile. Fixed in github.com/oxyno-zeta/s3-proxy/cmd/s3-proxy 0.0.0-20250220214310-c611c741ed48.
References
github.com/oxyno-zeta/s3-proxy/security/advisories/GHSA-pp9m-qf39-hxjc
github.com/oxyno-zeta/s3-proxy/commit/c611c741ed4872ea3f46232be23bb830f96f9564
github.com/oxyno-zeta/s3-proxy/blob/master/templates/folder-list.tpl
github.com/oxyno-zeta/s3-proxy/releases/tag/v4.18.1
nvd.nist.gov/vuln/detail/CVE-2025-27088
github.com/advisories/GHSA-pp9m-qf39-hxjc
Show 33 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2025/27xxx/CVE-2025-27088.json
github.com/oxyno-zeta/s3-proxy
suse.com/security/cve/CVE-2024-57603
suse.com/security/cve/CVE-2024-57604
suse.com/security/cve/CVE-2025-0426
suse.com/security/cve/CVE-2025-1243
suse.com/security/cve/CVE-2025-1293
suse.com/security/cve/CVE-2025-1412
suse.com/security/cve/CVE-2025-20051
suse.com/security/cve/CVE-2025-22870
suse.com/security/cve/CVE-2025-22952
suse.com/security/cve/CVE-2025-23387
suse.com/security/cve/CVE-2025-23388
suse.com/security/cve/CVE-2025-23389
suse.com/security/cve/CVE-2025-24016
suse.com/security/cve/CVE-2025-24526
suse.com/security/cve/CVE-2025-24806
suse.com/security/cve/CVE-2025-24976
suse.com/security/cve/CVE-2025-25196
suse.com/security/cve/CVE-2025-25199
suse.com/security/cve/CVE-2025-25204
suse.com/security/cve/CVE-2025-25279
suse.com/security/cve/CVE-2025-25294
suse.com/security/cve/CVE-2025-27088
suse.com/security/cve/CVE-2025-27090
suse.com/security/cve/CVE-2025-27100
suse.com/security/cve/CVE-2025-27112
suse.com/security/cve/CVE-2025-27144
suse.com/security/cve/CVE-2025-27155
suse.com/security/cve/CVE-2025-27414
suse.com/security/cve/CVE-2025-27421
suse.com/security/cve/CVE-2025-27507
suse.com/security/cve/CVE-2025-27509