Read the docs
TI-2024-38711 Aliases GHSA-7g7c-qhf3-x59p

propel/propel1 SQL injection possible with limit() on MySQL

Priority LOW 38CWE-89Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
SQL injection
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-89.

Summary

The limit() query method is susceptible to catastrophic SQL injection with MySQL. For example, given a model User for a table users: ``` UserQuery::create()->limit('1;DROP TABLE users')->find(); ``` This will drop the users table! The cause appears to be a lack of integer casting of the limit input in either Criteria::setLimit() or in DBMySQL::applyLimit(). The code comments there seem to imply that casting was avoided due to overflow issues with 32-bit integers. This is surprising behavior since one of the primary purposes of an ORM is to prevent basic SQL injection. This affects all versions of Propel: 1.x, 2.x, and 3.

Why it matters now

Fix Fixed propel/propel1 (Packagist): 1.7.2

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—propel/propel1 (Packagist)1 to before 1.7.21.7.2Patch availableGHSA-7g7c-qhf3-x59p
  • propel/propel1 (Packagist) Vendor— Affected 1 to before 1.7.2 Fixed in 1.7.2 Patch available GHSA-7g7c-qhf3-x59p

Remediation

  • Fix · GHSA-7g7c-qhf3-x59p propel/propel1 (Packagist) Fixed in 1.7.2 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-7g7c-qhf3-x59p

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences