CVE-2016-1249
Medium · 5.9CVSS
5.9
EPSS
2.4%
Published
Feb 17, 2017
CISA due date
—
Cloudanix analysis
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
- Identify a Perl application using DBD::mysql with server-side prepared statements enabled
- Craft or induce a query whose placeholder count in the WHERE clause mismatches the SELECT expression field count
- Submit the query through normal application channels or direct database access
- 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
- CVE-2014-9906 Use-after-free vulnerability in DBD::mysql before 4.029 allows attackers to cause a… Also affects libdbd-mysql-perl
- CVE-2026-92824 A flaw was found in libmodulemd. CWE-125
- CVE-2026-114038 A flaw was found in device-mapper-multipath. CWE-125
- CVE-2026-112896 Pillow is a Python imaging library. CWE-125
- CVE-2026-112278 rdesktop through 1.9.0 contains a heap out-of-bounds read vulnerability in… CWE-125
- CVE-2026-112273 libtins through 4.6 contains a heap out-of-bounds read vulnerability in DNS::compose_name… CWE-125
- CVE-2026-112073 A vulnerability was identified in Tencent ncnn up to 44b02dabdcf97499281a4692ebd65bad73dc… CWE-125
- CVE-2026-112020 LodePNG through 20261006 contains a heap out-of-bounds read vulnerability in… CWE-125