GHSA-7G7C-QHF3-X59P
Vulnerability from github – Published: 2024-05-20 17:36 – Updated: 2024-05-20 17:36
VLAI
Summary
propel/propel1 SQL injection possible with limit() on MySQL
Details
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.
Severity
9.8 (Critical)
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 1.7.1"
},
"package": {
"ecosystem": "Packagist",
"name": "propel/propel1"
},
"ranges": [
{
"events": [
{
"introduced": "1"
},
{
"fixed": "1.7.2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-89"
],
"github_reviewed": true,
"github_reviewed_at": "2024-05-20T17:36:28Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "The limit() query method is susceptible to catastrophic SQL injection with MySQL.\n\nFor example, given a model User for a table users:\n```\nUserQuery::create()-\u003elimit(\u00271;DROP TABLE users\u0027)-\u003efind();\n```\nThis will drop the users table!\n\nThe 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.\n\nThis is surprising behavior since one of the primary purposes of an ORM is to prevent basic SQL injection.\n\nThis affects all versions of Propel: 1.x, 2.x, and 3.",
"id": "GHSA-7g7c-qhf3-x59p",
"modified": "2024-05-20T17:36:29Z",
"published": "2024-05-20T17:36:28Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/propelorm/Propel/issues/1052"
},
{
"type": "WEB",
"url": "https://github.com/propelorm/Propel/pull/1054"
},
{
"type": "WEB",
"url": "https://github.com/propelorm/Propel/commit/b72093201f8e225410f62a246653ac039e31c90a"
},
{
"type": "WEB",
"url": "https://github.com/FriendsOfPHP/security-advisories/blob/master/propel/propel1/2018-02-14.yaml"
},
{
"type": "PACKAGE",
"url": "https://github.com/propelorm/Propel"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "propel/propel1 SQL injection possible with limit() on MySQL"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…