← Back to CVE Explorer

CVE-2026-13766

Full vulnerability record from the local CVENow database.

Description

DBIx::QuickORM versions before 0.000026 for Perl allow SQL injection via unquoted SQL identifiers. The default SQL builder, a SQL::Abstract subclass, sets bindtype in its constructor but never quote_char, so SQL::Abstract emits identifiers verbatim. Caller-supplied identifiers (order_by, where-clause column keys, field and returning lists, upsert columns, and join aliases) reach the SQL string raw, while values are placeholder-bound and unaffected. A caller that forwards untrusted input to an affected identifier position, such as a user-controlled order_by value, enables SQL injection: the row order can be made to depend on a sub-select over columns the query never selected, and the where and update identifier positions permit further data disclosure and tampering.

Severity
CRITICAL
CVSS score
9.8 (v3.1)
Vulnerability status
Deferred
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-06-30 12:16:23.180000
Last modified
2026-10-25 21:10:00.770000
View original CVE JSON
{
  "id": "CVE-2026-13766",
  "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
  "published": "2026-06-30T12:16:23.180",
  "lastModified": "2026-10-25T21:10:00.770",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "DBIx::QuickORM versions before 0.000026 for Perl allow SQL injection via unquoted SQL identifiers.\n\nThe default SQL builder, a SQL::Abstract subclass, sets bindtype in its constructor but never quote_char, so SQL::Abstract emits identifiers verbatim. Caller-supplied identifiers (order_by, where-clause column keys, field and returning lists, upsert columns, and join aliases) reach the SQL string raw, while values are placeholder-bound and unaffected.\n\nA caller that forwards untrusted input to an affected identifier position, such as a user-controlled order_by value, enables SQL injection: the row order can be made to depend on a sub-select over columns the query never selected, and the where and update identifier positions permit further data disclosure and tampering."
    },
    {
      "lang": "es",
      "value": "Las versiones de DBIx::QuickORM anteriores a la 0.000026 para Perl permiten la inyección SQL a través de identificadores SQL sin comillas.\n\nEl constructor de SQL predeterminado, una subclase de SQL::Abstract, establece bindtype en su constructor pero nunca quote_char, por lo que SQL::Abstract emite los identificadores textualmente. Los identificadores proporcionados por el llamador (order_by, claves de columna de cláusulas where, listas de campos y de retorno, columnas de upsert y alias de unión) llegan a la cadena SQL sin procesar, mientras que los valores están vinculados a marcadores de posición y no se ven afectados.\n\nUn llamador que reenvía entrada no confiable a una posición de identificador afectada, como un valor order_by controlado por el usuario, habilita la inyección SQL: el orden de las filas puede hacerse depender de una subconsulta sobre columnas que la consulta nunca seleccionó, y las posiciones de identificador de where y update permiten una mayor divulgación y manipulación de datos."
    }
  ],
  "affected": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "affectedData": [
        {
          "vendor": "EXODIST",
          "product": "DBIx::QuickORM",
          "defaultStatus": "unaffected",
          "collectionURL": "https://cpan.org/modules",
          "packageName": "DBIx-QuickORM",
          "programFiles": [
            "lib/DBIx/QuickORM/SQLBuilder/SQLAbstract.pm",
            "lib/DBIx/QuickORM/Connection.pm"
          ],
          "programRoutines": [
            {
              "name": "DBIx::QuickORM::SQLBuilder::SQLAbstract::new"
            },
            {
              "name": "DBIx::QuickORM::Connection::init"
            }
          ],
          "repo": "https://github.com/exodist/DBIx-QuickORM/",
          "versions": [
            {
              "version": "0",
              "lessThan": "0.000026",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
          "baseScore": 9.8,
          "baseSeverity": "CRITICAL",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-06-30T14:12:52.476439Z",
          "id": "CVE-2026-13766",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-89"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/exodist/DBIx-QuickORM/commit/43d7684682050780f056f25e1879191fb0a3265e.patch",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    },
    {
      "url": "https://metacpan.org/release/EXODIST/DBIx-QuickORM-0.000026/changes",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    },
    {
      "url": "http://www.openwall.com/lists/oss-security/2026/06/30/4",
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    }
  ]
}