CVE-2026-15736 json
Multiple SQL/DDL Injection and Arbitrary File Read Vulnerabilities in snowflake-sqlalchemy
published 2026-07-14 3 mo ago modified 2026-10-24 15 d ago also GHSA-8g6f-qw9x-4q6q , PYSEC-2026-3921 , EUVD-2026-43679
- cvss
- 8.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 31%
- public exploits
- 0
- none known
Summary
Snowflake SQLAlchemy versions prior to 1.11.0 contain several security vulnerabilities, including: Improper handling of user-supplied column identifiers in merge operations could allow SQL injection through attacker-controlled input keys. An attacker may be able to exploit this through request field names in a dynamic upsert endpoint, potentially enabling read access to data visible to the application's database role or modification of values within the same MERGE statement. Improper literal rendering of bound parameters when building certain Snowflake-specific table creation queries could allow SQL injection. An attacker may be able to exploit this by supplying a crafted string to any application endpoint that passes user-controlled data through the affected query-building API, potentially causing arbitrary data exfiltration within the scope of the connection role. Improper forwarding of connection configuration parameters could allow an attacker to cause the library to read arbitrary local files and transmit their contents to an attacker-controlled endpoint. An attacker may be able to exploit this in deployment environments that accept user-controlled connection parameters, potentially exposing sensitive files accessible to the application process. The fix is available in Snowflake SQLAlchemy version 1.11.0. Users must manually upgrade.
Patch / fix
- pypi snowflake-sqlalchemy 1.11.0
- Snowflake Snowflake SQLAlchemy 1.11.0
- github.com/snowflakedb/snowflake-sqlalchemy@2c33792 commit
- github.com/snowflakedb/snowflake-sqlalchemy@35edf4d commit
- github.com/snowflakedb/snowflake-sqlalchemy@a198ed2 commit
- github.com/snowflakedb/snowflake-sqlalchemy#707 pull request
- github.com/snowflakedb/snowflake-sqlalchemy#708 pull request
- github.com/snowflakedb/snowflake-sqlalchemy#710 pull request
- github.com/snowflakedb/snowflake-sqlalchemy/releases/tag/v1.11.0 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 3 mo ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 31% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L |
| GitHub | 3.1 | 8.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L |
| OSV | 3.1 | 8.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | snowflake-sqlalchemy | >=1.1.6, <1.11.0 |
1.11.0 |
Affected products
- Snowflake Snowflake SQLAlchemy
Classification
References
-
github.com
/snowflakedb/snowflake-sqlalchemy/pull/707
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/pull/708
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/pull/710
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/commit/2c33792c91449e746a2c7ef24c25f0ede0a4a875
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/commit/35edf4dc5e76b9a9fdfa74c8e4f6fd14642110f1
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/commit/a198ed2197bb3e0be57268032ed6e8b7fdeb8129
web
-
github.com
/snowflakedb/snowflake-sqlalchemy/releases
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-15736
advisory
-
github.com
/snowflakedb/snowflake-sqlalchemy
package
-
github.com
/snowflakedb/snowflake-sqlalchemy/releases/tag/v1.11.0
web
-
pypi.org
/project/snowflake-sqlalchemy
package
-
github.com
/advisories/GHSA-8g6f-qw9x-4q6q
advisory
Sources
- CVE List CVE-2026-15736
- GitHub Advisory GHSA-8g6f-qw9x-4q6q
- NVD CVE-2026-15736
- OSV PYSEC-2026-3921
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.