Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain glue:UpdateTable on shared Glue catalog
-
DeliveryInject crafted column name into table metadata
-
ExploitPrivileged principal runs to_iceberg() on table
-
ExecutionIdentifier breaks out of Athena SQL quoting
-
ImpactRead and write victim principal's tables
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Requires a shared AWS Glue Data Catalog in which the attacker is an authenticated principal holding glue:UpdateTable (or equivalent catalog-metadata modify) permission on a database/table that a victim processes, AND a separate, more-privileged principal that invokes awswrangler/aws-sdk-pandas to_iceberg() on that same table while running versions 3.5.2 through 3.17.0. Exploitation is limited by several factors: the attacker must already have catalog-write access, the privileged victim must actually run to_iceberg() against the poisoned table (required user interaction), and the deployment must pair a shared catalog with an over-privileged Iceberg writer - environments where catalog-metadata write and to_iceberg() privileges are held by the same trust level are not exposed. The advisory states there is no complete workaround short of upgrading; partial mitigations are to avoid calling to_iceberg() with a principal more privileged than those who can modify that table's Glue metadata and to restrict glue:UpdateTable and related permissions on shared databases. |
| Impact | This is a genuine but conditional privilege-escalation / data-exposure issue, not a mass-exploitation threat. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:L, 7.9 High) tells a coherent story that matches the description: the attack is network-reachable but requires an already-authenticated principal (PR:L) who holds glue:UpdateTable/catalog-modify rights, succeeds only when a separate more-privileged principal independently runs to_iceberg() against the poisoned table (UI:R), and crosses a privilege boundary (S:C) to expose and corrupt that victim principal's data (C:H/I:H, A:L). The high attack complexity (AC:H) reflects the dependency on the victim's actions and specific shared-catalog conditions rather than any described timing or race - the trigger mechanics beyond 'crafted column name spliced into generated Athena SQL' are only loosely detailed in the sources. No EPSS score and no KEV listing were supplied, and there is no public exploit identified at time of analysis; the only references are the vendor advisory, the AWS security bulletin, and the patched release. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a real-but-not-urgent priority: the preconditions (shared Glue Data Catalog, an over-privileged to_iceberg() caller, attacker already holding catalog-write permission) meaningfully constrain real-world exploitation. Signals are consistent rather than conflicting; the main missing data are EPSS and any exploitation telemetry. |
| Exploit ScenarioDerived | In an environment with a shared AWS Glue Data Catalog, a lower-privileged but authenticated user who holds glue:UpdateTable on a shared database alters a table's metadata to introduce a maliciously crafted column name. When a separate, more-privileged pipeline or principal later calls awswrangler's to_iceberg() against that table, the unescaped identifier is spliced into generated Amazon Athena SQL, letting the attacker read any table that privileged principal can access and write to the table it is updating. No public proof-of-concept is referenced, and success depends on the victim principal performing the to_iceberg() operation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
SQL identifier injection in the Apache Iceberg write path of AWS SDK for pandas (awswrangler) 3.5.2 through 3.17.0 allows an authenticated principal that can modify AWS Glue Data Catalog metadata to read any table a separate, more privileged principal can access - and to write to the very table that principal is updating - by planting a crafted column name that is spliced unescaped into generated Athena SQL. The flaw is conditional rather than broadly exploitable: the attacker must already hold glue:UpdateTable (or equivalent catalog-modify) rights on a shared database, a more-privileged principal must then invoke to_iceberg() against the poisoned table (required user interaction), and the deployment must pair a shared catalog with an over-privileged Iceberg writer. No public exploit code and no confirmed active exploitation were identified at time of analysis; the vendor rates it as a privilege-escalation/data-exposure issue fixed in 3.17.1 and prioritizes it for patching this week.
RemediationAI
Vendor-released patch: upgrade awswrangler to 3.17.1 or later (fixed release https://github.com/aws/aws-sdk-pandas/releases/tag/3.17.1, containing PR #3423 which escapes identifiers in Iceberg SQL generation); the vendor recommends running the latest version and porting the fix into any forked or derivative code. The advisory states there is no complete workaround for earlier versions, so upgrading is the only full fix. Partial mitigations available in the interim are to stop calling to_iceberg() with a principal that holds more privileges than the principals able to modify that table's AWS Glue Data Catalog metadata, and to restrict glue:UpdateTable and related permissions on shared databases - both reduce exposure but neither fully closes the injection path. Vendor advisory: https://github.com/aws/aws-sdk-pandas/security/advisories/GHSA-g8fh-6w6x-mhqf; AWS bulletin: https://aws.amazon.com/security/security-bulletins/2026-161-aws/.
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
awswrangler is an open-source Python library that bridges pandas with AWS analytics services. When to_iceberg() reconciles a DataFrame schema against an existing Amazon Athena/Glue table, it builds SQL statements by string-splicing table and column identifiers - including column names read back from the AWS Glue Data Catalog - without escaping the identifier delimiter (CWE-149, improper neutralization of quoting syntax; the GitHub advisory also classifies the root cause as CWE-89 SQL injection). Because catalog-supplied names are trusted as identifiers rather than data, a poisoned column name can break out of its quoting context and alter the structure of the SQL the privileged caller executes through Athena, which is the mechanism behind the cross-principal read/write impact. The upstream fix, PR #3423 ('fix(athena): properly escape identifiers in Iceberg SQL generation') in release 3.17.1, addresses this. The trigger path is shared-catalog metadata reconciliation; no other deployment mode is described in the available sources.
Know when AWS gets its next vulnerability
- 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:P/PR:L/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:L
Attacker is an authenticated catalog-write user (PR:L), success depends on a separate privileged principal running to_iceberg() (UI:R, AC:H), and impact crosses principals (S:C) to read/write victim tables (C:H/I:H/A:L).
Primary rating from Vendor (AMZN).
CVSS VectorVendor: AMZN
Lifecycle Timeline
3DescriptionCVE.org
Improper neutralization of quoting syntax in SQL identifier construction in the Apache Iceberg write component in AWS SDK for pandas (also published as awswrangler) 3.5.2 through 3.17.0 might allow an authenticated remote user with permission to modify AWS Glue Data Catalog metadata to read any table that a separate, more privileged principal can access and write to the table that principal is updating via a crafted column name.
To remediate this issue, users should upgrade to version 3.17.1 or later.
Executive ViewAI
A high-severity SQL injection vulnerability in awswrangler (AWS SDK for pandas) versions 3.5.2 through 3.17.0 could allow an authenticated attacker with Glue Data Catalog modification rights to escalate privileges and read or write data belonging to more privileged principals. This affects organizations using shared data catalogs with Iceberg write operations, potentially exposing sensitive datasets and compromising data integrity. Leadership should prioritize remediation because exploitation requires only catalog-modify permissions and a privileged user action, which is plausible in multi-team data environments.
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Loom for AWS deployments running a version before 1.6.1 with no identity provider configured expose an unauthenticated s
Unauthorized data access in Budibase low-code platform before 3.30.4 allows unauthenticated users to manipulate internal
Authenticated Typebot users can abuse the webhook block (HTTP Request component) in versions prior to 3.13.1 to issue ar
Multiple vulnerabilities in ASTPP 4.0.1 including XSS and command injection in SIP device configuration and plugin manag
Remote code execution in Amazon awslabs postgres-mcp-server before 1.1.7 lets remote actors run arbitrary OS commands on
Remote code execution in AWS AgentCore CLI before v0.14.2 allows authenticated attackers to inject Python code via craft
Denial of service in the aws-smithy-json Rust runtime crate (versions before 0.62.7) lets remote unauthenticated attacke
Denial of service in Amazon's aws-smithy-http-server Rust crate (versions prior to 0.66.5) lets remote unauthenticated a
Argument injection in the AWS Bedrock AgentCore Python SDK before 1.18.1 lets a remote authenticated user run arbitrary
Arbitrary file read in amazon-mq rabbitmq-aws before 0.2.1 allows authenticated remote users to read any file accessible
WAF managed-rule body inspection on AWS Application Load Balancer (ALB) can be bypassed by remote actors who fragment an
WAF inspection bypass in Amazon CloudFront (with AWS WAF enabled) lets remote actors smuggle malicious request bodies pa
EUVD-2026-115329
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB