Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain presigned S3 upload URL for bucket
-
ExploitInject unsigned X-Amz-Copy-Source header into PUT
-
ExecutionServer copies another bucket object onto granted key
-
ImpactRead granted key, disclose object contents and ETag
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires: (1) the affected Incus version running a storage bucket on a local storage pool using the built-in in-process S3 server (Ceph radosgw buckets are NOT affected); (2) the bucket listener core.storage_buckets_address to be enabled, which is DISABLED by default; and (3) the attacker to possess a valid presigned upload (PUT) URL for an object in the target bucket - no separate bucket credentials are needed, but the presigned grant is the entry point. The attacker then attaches an unsigned X-Amz-Copy-Source header, which the canonical-request signature check never validates because it only iterates the client-supplied X-Amz-SignedHeaders list (and the SigV2 presigned path omits CanonicalizedAmzHeaders entirely). Full disclosure of a target object's contents additionally requires the attacker to be able to read the granted key (e.g. via a matching presigned download URL); the ETag of the source object leaks regardless. Limiting factors: non-default listener, local-pool-only built-in S3 server, and the need for a pre-existing presigned-URL grant. |
| Impact | CVSS 4.0 base score is 7.1 (High), driven by a network vector (AV:N), low complexity (AC:L), no attack requirements (AT:N), and high confidentiality impact (VC:H) with only low integrity impact (VI:L) and no availability impact. Crucially, the vector requires privileges (PR:L): the attacker must already hold a valid presigned S3 URL, which is itself a vendor-issued grant rather than fully anonymous access, so this is not an unauthenticated internet-wide flaw. No EPSS score, CISA KEV listing, or SSVC automatable/technical-impact fields were supplied; the only prioritization signal is the vuln.today decision label 'this_week' (not act_now/emergency), which is consistent with a real but non-emergency issue. No public exploit was identified at time of analysis. The practical risk is meaningfully reduced by configuration: the built-in S3 bucket listener (core.storage_buckets_address) is disabled by default and Ceph radosgw buckets are unaffected, so only operators who deliberately enabled the local-pool S3 server and handed out presigned URLs for buckets containing sensitive objects are exposed. Net assessment: a genuine confidentiality risk worth patching on a normal cycle, but bounded by non-default deployment and the need for a pre-existing presigned-URL grant rather than a widespread, high-urgency threat. |
| Exploit ScenarioDerived | An operator issues a presigned upload (PUT) URL for a single object in an Incus local-pool S3 bucket to a semi-trusted party. That party adds an unsigned X-Amz-Copy-Source header to the request, causing the server to copy another object in the same bucket onto the granted key under the signer's credentials; if the holder can also read that key (e.g. via a matching presigned download URL), the contents and ETag of the arbitrary source object are disclosed. No public exploit was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Presigned S3 upload URLs issued by Incus's built-in in-process S3 server can be abused to read other objects in the same bucket, because the server validates SigV4 signatures only over the headers the client lists in X-Amz-SignedHeaders and never rejects additional unsigned x-amz-* headers (the SigV2 presigned path omits CanonicalizedAmzHeaders entirely). Anyone holding a presigned PUT URL for one key - no bucket credentials required - can attach an unsigned X-Amz-Copy-Source header and have the server copy an arbitrary object in that bucket onto the granted key under the signer's credentials, leaking the source object's ETag and, where the attacker can also read the granted key (for example via a matching presigned download URL), its full contents. Incus 7.0.0 through 7.0.1 and 7.1.0 through 7.4.x are affected when a storage bucket on a local storage pool is served by the built-in S3 server and the bucket listener (core.storage_buckets_address) is enabled, which is not the default; Ceph radosgw buckets are unaffected. Authentication is required in the sense that a valid presigned grant must already be held, and no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade to a fixed Incus release: 7.0.2 for the 7.0.x branch and 7.5.0 (or later) for the 7.1.x-and-newer branch, as documented in GHSA-mmj7-8rgf-mx2h. No patch is available for 7.0.0-7.0.1 or 7.1.0-7.4.x other than moving to those fixed versions. If upgrading cannot be done immediately, the vendor's stated workarounds are to keep the bucket listener (core.storage_buckets_address) disabled - which removes the S3 bucket API entirely for any client relying on it, including legitimate presigned-URL consumers - or to avoid issuing presigned URLs for buckets that also hold sensitive objects, which preserves the listener but means sensitive data should be kept in a separate bucket that never receives presigned grants. Note that Ceph radosgw-backed buckets are not affected and do not need these restrictions. Because a pre-existing presigned URL is the entry point, reviewing and rotating outstanding presigned grants after upgrading reduces residual exposure; presigned URLs are typically short-lived, so allow existing grants to expire if rotation is impractical.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is Incus's in-process S3 server, used to expose storage buckets that live on local storage pool drivers (the Go package go/github.com/lxc/incus/v7/cmd/incusd, fixed in v7.5.0 upstream). The flaw is CWE-347, improper verification of a cryptographic signature: when reconstructing the canonical request for AWS Signature Version 4, the implementation iterates only over the client-supplied X-Amz-SignedHeaders list, so any x-amz-* header present on the wire but absent from that list is never covered by the signature check. The SigV2 presigned code path is worse in that it omits the CanonicalizedAmzHeaders section altogether. Because the object handler routes any PUT that carries an X-Amz-Copy-Source header into the copy path purely on the presence of that header, an attacker can convert a narrowly scoped write grant into a read primitive inside the bucket; real AWS S3 refuses unsigned headers of this kind, so this deviates from the protocol behaviour clients reasonably expect. The same verification gap exists on the Authorization header path. Exposure is constrained by deployment: only local-pool buckets served by the built-in S3 server are affected (Ceph radosgw buckets are explicitly out of scope), and the bucket listener core.storage_buckets_address is disabled by default.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable S3 server with no user interaction; PR:L because a presigned-URL grant is required; C:H from arbitrary object disclosure, I:L from the copy writing to the granted key, A:N.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Incus 7.0.0 before 7.0.2 and 7.1.0 before 7.5.0 contains a signature verification flaw in its built-in S3 server that allows presigned URL holders to inject unsigned x-amz-* headers. Attackers can add an unsigned X-Amz-Copy-Source header to a presigned upload URL to copy other bucket objects onto the granted key, disclosing their contents and ETags.
Technical POC Analysis
CWE-347, improper verification of a cryptographic signature.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The built-in S3 server in Incus, when exposed via a non-default configuration, allows anyone with a presigned upload link to bypass intended access controls and read arbitrary objects from the same bucket. This undermines data confidentiality for organizations using Incus storage buckets to hold sensitive information, as a single shared link could lead to unauthorized access to unrelated files.
Disable the built-in S3 server (core.storage_buckets_address) unless strictly required; if used, restrict network access to the listener, audit and limit presigned URL distribution, and add monitoring for unsigned x-amz-* headers. No vendor-released patch identified at time of analysis.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
EUVD-2026-108297
GHSA-m6pj-594x-rw4f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB