CVE-2026-42882: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in oxyno-zeta s3-proxy
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. Prior to 5.0.0, s3-proxy contains an authentication bypass caused by inconsistent URL path interpretation between the authentication middleware and the bucket handler. The authentication middleware evaluates resource path patterns against the percent-encoded request URI (r.URL.RequestURI()), while the bucket handler constructs S3 object keys from the decoded path (r.URL.Path). This mismatch, combined with the glob library being invoked without a path separator (causing * to match across / boundaries), allows unauthenticated attackers to write to, read from, or delete objects in protected S3 namespaces. Exploitation is possible via three techniques: (1) using * patterns that match across path separators to reach protected routes via path traversal (e.g., /open/foo/drafts/../restricted/), (2) using percent-encoded slashes (%2F) to collapse multiple path segments into a single token at the auth layer while the decoded form resolves to a protected namespace at the storage layer, and (3) using dot-dot segments (../) under ** prefix patterns, where the raw path matches an open route while Go's URL parser resolves the traversal to a protected path before the bucket handler runs. An unauthenticated attacker with network access can perform unauthorized PUT, GET, or DELETE operations on objects in authentication-protected S3 namespaces. This vulnerability is fixed in 5.0.0.
AI Analysis
Technical Summary
oxyno-zeta/s3-proxy versions before 5.0.0 contain an authentication bypass vulnerability caused by inconsistent handling of URL paths between the authentication middleware and the bucket handler. The middleware checks resource paths against the percent-encoded request URI, while the bucket handler uses the decoded path, leading to a mismatch. This discrepancy, combined with the glob library's behavior allowing '*' to match across path separators, enables unauthenticated attackers to perform path traversal attacks. Exploitation techniques include using '*' patterns that cross directory boundaries, percent-encoded slashes (%2F) to collapse path segments, and dot-dot (../) segments under '**' prefix patterns. These allow attackers to access or modify objects in protected S3 namespaces without authentication. The vulnerability is fixed in s3-proxy version 5.0.0.
Potential Impact
An unauthenticated attacker with network access can bypass authentication controls and perform unauthorized PUT, GET, or DELETE operations on objects within authentication-protected S3 namespaces. This compromises confidentiality and integrity of stored objects and can cause partial availability impact. The CVSS 3.1 score of 9.4 reflects critical severity with network attack vector, low attack complexity, no privileges required, and no user interaction needed.
Mitigation Recommendations
A fixed version (5.0.0) of s3-proxy is available that resolves this authentication bypass and path traversal vulnerability. Users should upgrade to version 5.0.0 or later. Since s3-proxy is a cloud service, the vendor manages remediation for hosted instances; users should verify with the vendor that their service is updated. Patch status is confirmed as fixed in version 5.0.0. No additional mitigations are indicated by the vendor advisory.
CVE-2026-42882: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in oxyno-zeta s3-proxy
Description
oxyno-zeta/s3-proxy is an aws s3 proxy written in go. Prior to 5.0.0, s3-proxy contains an authentication bypass caused by inconsistent URL path interpretation between the authentication middleware and the bucket handler. The authentication middleware evaluates resource path patterns against the percent-encoded request URI (r.URL.RequestURI()), while the bucket handler constructs S3 object keys from the decoded path (r.URL.Path). This mismatch, combined with the glob library being invoked without a path separator (causing * to match across / boundaries), allows unauthenticated attackers to write to, read from, or delete objects in protected S3 namespaces. Exploitation is possible via three techniques: (1) using * patterns that match across path separators to reach protected routes via path traversal (e.g., /open/foo/drafts/../restricted/), (2) using percent-encoded slashes (%2F) to collapse multiple path segments into a single token at the auth layer while the decoded form resolves to a protected namespace at the storage layer, and (3) using dot-dot segments (../) under ** prefix patterns, where the raw path matches an open route while Go's URL parser resolves the traversal to a protected path before the bucket handler runs. An unauthenticated attacker with network access can perform unauthorized PUT, GET, or DELETE operations on objects in authentication-protected S3 namespaces. This vulnerability is fixed in 5.0.0.
CVSS v3.1
Score 9.4critical
Affected software
pkg:golang/github.com/oxyno-zeta/s3-proxyRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
oxyno-zeta/s3-proxy versions before 5.0.0 contain an authentication bypass vulnerability caused by inconsistent handling of URL paths between the authentication middleware and the bucket handler. The middleware checks resource paths against the percent-encoded request URI, while the bucket handler uses the decoded path, leading to a mismatch. This discrepancy, combined with the glob library's behavior allowing '*' to match across path separators, enables unauthenticated attackers to perform path traversal attacks. Exploitation techniques include using '*' patterns that cross directory boundaries, percent-encoded slashes (%2F) to collapse path segments, and dot-dot (../) segments under '**' prefix patterns. These allow attackers to access or modify objects in protected S3 namespaces without authentication. The vulnerability is fixed in s3-proxy version 5.0.0.
Potential Impact
An unauthenticated attacker with network access can bypass authentication controls and perform unauthorized PUT, GET, or DELETE operations on objects within authentication-protected S3 namespaces. This compromises confidentiality and integrity of stored objects and can cause partial availability impact. The CVSS 3.1 score of 9.4 reflects critical severity with network attack vector, low attack complexity, no privileges required, and no user interaction needed.
Mitigation Recommendations
A fixed version (5.0.0) of s3-proxy is available that resolves this authentication bypass and path traversal vulnerability. Users should upgrade to version 5.0.0 or later. Since s3-proxy is a cloud service, the vendor manages remediation for hosted instances; users should verify with the vendor that their service is updated. Patch status is confirmed as fixed in version 5.0.0. No additional mitigations are indicated by the vendor advisory.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-04-30T18:49:06.711Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
- Is Cloud Service
- true
Threat ID: 6a028779cbff5d86108b80ab
Added to database: 05/12/2026, 01:50:49 UTC
Last enriched: 05/19/2026, 09:37:33 UTC
Last updated: 07/07/2026, 10:33:23 UTC
Views: 114
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.