Cloudanix VulnDB

CVE-2016-1249

Medium · 5.9

CVSS

5.9

EPSS

2.4%

Published

Feb 17, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a Perl database driver can let attackers crash programs by sending certain kinds of database queries, interrupting services that rely on those programs.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
High
Impact
Denial Of Service
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Out-of-bounds read in DBD::mysql server-side prepared statement handling when the count of placeholders in WHERE clauses does not match the number of output fields in SELECT expressions, causing memory corruption and denial of service.

Why it matters to the business

Applications relying on Perl DBI with MySQL prepared statements can be crashed remotely, leading to service outages and potential loss of availability for database-dependent workloads.

How an attack unfolds

An attacker supplies or triggers a SELECT query via an affected Perl application where the placeholder count in the WHERE condition is unaligned with the selected output columns; the module performs an out-of-bounds read during statement preparation or execution, crashing the process.

How to fix it

Upgrade DBD::mysql to version 4.039 or later. For the listed Debian packages apply the fixed versions: libplist (Debian:11) 1.12+git+1+e37ca00-0.1, libplist (Debian:12) 1.12+git+1+e37ca00-0.1, libplist (Debian:13) 1.12+git+1+e37ca00-0.1. Disable server-side prepared statements as a temporary mitigation if immediate upgrade is not possible.

How to confirm the fix worked

Confirm the installed DBD::mysql version is at least 4.039; test prepared statements with deliberately mismatched placeholder counts to verify absence of crashes; review application logs for prior segmentation faults or memory errors during query execution.

Typical attack path

  1. Identify a Perl application using DBD::mysql with server-side prepared statements enabled
  2. Craft or induce a query whose placeholder count in the WHERE clause mismatches the SELECT expression field count
  3. Submit the query through normal application channels or direct database access
  4. Trigger the out-of-bounds read during statement handling, resulting in process crash

How to detect it

Review web server and application logs for repeated database query errors or abrupt process terminations around the time of suspected activity; search process core dumps or crash reports for memory access violations during prepared statement handling.

What your security team should do

  • Prioritize upgrade of DBD::mysql across all Perl database clients within 30 days given the public availability of the flaw since 2017
  • Audit code for explicit use of server-side prepared statements and consider client-side preparation where feasible
  • Monitor for application crashes correlated with database query patterns

The record

The DBD::mysql module before 4.039 for Perl, when using server-side prepared statement support, allows attackers to cause a denial of service (out-of-bounds read) via vectors involving an unaligned number of placeholders in WHERE condition and output fields in SELECT expression.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 libdbd-mysql-perl 0 4.039-1
Debian:12 libdbd-mysql-perl 0 4.039-1
Debian:13 libdbd-mysql-perl 0 4.039-1
Debian:14 libdbd-mysql-perl 0 4.039-1
Mageia:5 perl-DBD-mysql 0 4.43.0-1.mga5
Mageia:6 perl-DBD-mysql 0 4.43.0-1.mga6
SUSE:Linux Enterprise Server 11 SP4 perl-DBD-mysql 0 4.008-9.1
SUSE:Linux Enterprise Server 12 SP1 perl-DBD-mysql 0 4.021-11.1
SUSE:Linux Enterprise Server 12 SP2 perl-DBD-mysql 0 4.021-11.1
SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 perl-DBD-mysql 0 4.021-11.1
SUSE:Linux Enterprise Server for SAP Applications 11 SP4 perl-DBD-mysql 0 4.008-9.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP1 perl-DBD-mysql 0 4.021-11.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP2 perl-DBD-mysql 0 4.021-11.1
SUSE:Linux Enterprise Software Development Kit 11 SP4 perl-DBD-mysql 0 4.008-9.1
Ubuntu:Pro:14.04:LTS libdbd-mysql-perl 0 No fix
Ubuntu:Pro:14.04:LTS libdbd-mysql-perl 0 4.025-1ubuntu0.1+esm1
Ubuntu:Pro:16.04:LTS libdbd-mysql-perl 0 4.033-1ubuntu0.1+esm1
openSUSE:Tumbleweed perl-DBD-mysql 0 4.041-2.1

Related vulnerabilities