CVE-2026-29080: Sqlalchemy Text Hardcoded Bindparam Val Collision

SQLAlchemy text() uses the hardcoded bind parameter name 'val' via .bindparams(val=...). When multiple such text() fragments are composed into a single query (e.g., iterating over filter conditions in a loop), every fragment references the same ':val' bind slot. SQLAlchemy's last-write-wins semantics for duplicate bind names silently discards all earlier bin

Provally CuratedPublic repositoryHighMedium confidenceVerifiedApache-2.0Python
greprules fetch cve-2026-29080-sqlalchemy-text-hardcoded-bindparam-val-collision --engine opengrep

Description

SQLAlchemy text() uses the hardcoded bind parameter name 'val' via .bindparams(val=...). When multiple such text() fragments are composed into a single query (e.g., iterating over filter conditions in a loop), every fragment references the same ':val' bind slot. SQLAlchemy's last-write-wins semantics for duplicate bind names silently discards all earlier bin