CriticalGHSA-6q9v-4hq6-5m67

Doctrine SQL injection vulnerability

Published 15 May 2024 · Updated 15 May 2024

Affected packages

doctrine/ormComposer
Affected
>=2.0.0 <2.0.3
Fixed in
2.0.3
Update to the fixed version for your release line, for example:composer require doctrine/orm:^2.0.3
doctrine/ormComposer
Affected
>=1.0.0 <1.2.4
Fixed in
1.2.4
Update to the fixed version for your release line, for example:composer require doctrine/orm:^1.2.4

Details

Doctrine is prone to SQL injection vulnerability. Users of Doctrine 1.2 and 2 should update to the newly released versions of both libraries immediately. Both versions only include the security fix and no other changes to their previous versions 1.2.3 and 2.0.2.

Affected versions are:

  • 1.2.3 and earlier for PostgreSQL and DB2 Dialects
  • 2.0.2 and earlier

The security issue was found to affect the Doctrine\DBAL\Platforms\AbstractPlatform::modifyLimitQuery() function which does not cast input values for limit and offset to integer and allows malicious SQL to be executed if these parameters are passed into Doctrine 2 directly from request variables without previous cast to integer. Functionality building on top using limit queries in the ORM such as Doctrine\ORM\Query::setFirstResult() and Doctrine\ORM\Query::setMaxResults() are also affected by this security issue.

The fix for this security issue breaks backwards compatibility for developers that extend the Doctrine\DBAL\Platforms\AbstractPlatform::modifyLimitQuery() method, because it is now marked as final. Please overwrite the Doctrine\DBAL\Platforms\AbstractPlatform::doModifyLimitQuery() method instead.

Is GHSA-6q9v-4hq6-5m67 in any of your client repos?

Checking one package by hand is fine. Checking it across forty client projects is not. NPMscan reads the lockfiles in every GitHub repo you pick, finds each project with an affected doctrine/orm, and gives you the command that fixes it.

References

Advisory data from OSV.dev (opens OSV.dev in a new tab), refreshed daily.