Advisory Database
  • Advisories
  • Dependency Scanning
  1. composer
  2. ›
  3. propel/propel1
  4. ›
  5. GHSA-7g7c-qhf3-x59p

GHSA-7g7c-qhf3-x59p: propel/propel1 SQL injection possible with limit() on MySQL

May 20, 2024

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.

References

  • github.com/FriendsOfPHP/security-advisories/blob/master/propel/propel1/2018-02-14.yaml
  • github.com/advisories/GHSA-7g7c-qhf3-x59p
  • github.com/propelorm/Propel
  • github.com/propelorm/Propel/commit/b72093201f8e225410f62a246653ac039e31c90a
  • github.com/propelorm/Propel/issues/1052
  • github.com/propelorm/Propel/pull/1054

Code Behaviors & Features

Detect and mitigate GHSA-7g7c-qhf3-x59p with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 1 before 1.7.2

Fixed versions

  • 1.7.2

Solution

Upgrade to version 1.7.2 or above.

Impact 9.8 CRITICAL

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Learn more about CVSS

Weakness

  • CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Source file

packagist/propel/propel1/GHSA-7g7c-qhf3-x59p.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:16:14 +0000.