Every CVE Search/ Get API key

CVE-2026-73194

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse

9.1 CriticalFix available

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
High

Exploit likelihood

0.49%Up 0.3 points since Aug 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-1284, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-59745 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
EUVD-2026-59745
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
NVD 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-787, CWE-1284
Updated
2026-11-02
OSVBELL-CVE-2026-73194 9.1
Record
BELL-CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
OSV 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-1284, CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2026-73194 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse. preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes. Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
DEBIAN-CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
Show 25 moreShow less
OSVOESA-2026-3477 7.7

perl-DBI security update

The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.

Security Fix(es):

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.(CVE-2026-73194)

Record
OESA-2026-3477
CVSS 3.1
7.7 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-3478 7.7

perl-DBI security update

The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.

Security Fix(es):

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.(CVE-2026-73194)

Record
OESA-2026-3478
CVSS 3.1
7.7 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-3519 9.1

perl-DBI security update

The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.

Security Fix(es):

DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse.

preparse reserves its output buffer with newSV(strlen(statement) * 7 + 16), budgeting seven output bytes per input byte for the longest ':p99999' expansion. The product is computed in STRLEN, which is 32 bits wide on a 32-bit perl build, so a statement of 613,566,757 bytes multiplies to 4,294,967,299, wraps modulo 2^32 to 3, and reserves 19 bytes. The parser then copies the statement out through a raw pointer with no capacity check, writing the whole 585 MB input past the end of the allocation. The 99,999 placeholder limit does not bound this path, which is reached by ordinary non-placeholder content.

Any caller that passes an untrusted statement of that length to preparse on a 32-bit perl gets a heap out-of-bounds write of attacker controlled bytes. Builds with a 64-bit STRLEN are not affected, since the wrap there needs a statement of about 2.3 exabytes.(CVE-2026-73193)

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.(CVE-2026-73194)

Record
OESA-2026-3519
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-3520 9.1

perl-DBI security update

The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.

Security Fix(es):

DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse.

preparse reserves its output buffer with newSV(strlen(statement) * 7 + 16), budgeting seven output bytes per input byte for the longest ':p99999' expansion. The product is computed in STRLEN, which is 32 bits wide on a 32-bit perl build, so a statement of 613,566,757 bytes multiplies to 4,294,967,299, wraps modulo 2^32 to 3, and reserves 19 bytes. The parser then copies the statement out through a raw pointer with no capacity check, writing the whole 585 MB input past the end of the allocation. The 99,999 placeholder limit does not bound this path, which is reached by ordinary non-placeholder content.

Any caller that passes an untrusted statement of that length to preparse on a 32-bit perl gets a heap out-of-bounds write of attacker controlled bytes. Builds with a 64-bit STRLEN are not affected, since the wrap there needs a statement of about 2.3 exabytes.(CVE-2026-73193)

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.(CVE-2026-73194)

Record
OESA-2026-3520
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVOESA-2026-3522 9.1

perl-DBI security update

The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.

Security Fix(es):

DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse.

preparse reserves its output buffer with newSV(strlen(statement) * 7 + 16), budgeting seven output bytes per input byte for the longest ':p99999' expansion. The product is computed in STRLEN, which is 32 bits wide on a 32-bit perl build, so a statement of 613,566,757 bytes multiplies to 4,294,967,299, wraps modulo 2^32 to 3, and reserves 19 bytes. The parser then copies the statement out through a raw pointer with no capacity check, writing the whole 585 MB input past the end of the allocation. The 99,999 placeholder limit does not bound this path, which is reached by ordinary non-placeholder content.

Any caller that passes an untrusted statement of that length to preparse on a 32-bit perl gets a heap out-of-bounds write of attacker controlled bytes. Builds with a 64-bit STRLEN are not affected, since the wrap there needs a statement of about 2.3 exabytes.(CVE-2026-73193)

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.(CVE-2026-73194)

Record
OESA-2026-3522
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:69112 7.3

Red Hat Security Advisory: perl-DBI:1.641 security update

Record
RHSA-2026:69112
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:70753 7.3

Red Hat Security Advisory: perl-DBI security update

Record
RHSA-2026:70753
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:71422 7.3

Red Hat Security Advisory: perl-DBI security update

Record
RHSA-2026:71422
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2026:71608 7.3

Red Hat Security Advisory: perl-DBI security update

Record
RHSA-2026:71608
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:69112 7.3

Important: perl-DBI:1.641 security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:69112
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:70753 7.3

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:70753
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:71422 7.3

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:71422
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2026:71608 7.3

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
RLSA-2026:71608
CVSS 3.1
7.3 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-73194 9.1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse. preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes. Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
UBUNTU-CVE-2026-73194
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
OSVALSA-2026:69112 No score

Important: perl-DBI:1.641 security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:69112
Updated
2026-11-02
OSVALSA-2026:70753 No score

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:70753
Updated
2026-11-02
OSVALSA-2026:71422 No score

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:71422
Updated
2026-11-02
OSVALSA-2026:71608 No score

Important: perl-DBI security update

The perl-DBI package provides the standard database interface module for the Perl programming language. It implements a database-independent interface, meaning it defines a consistent set of methods, variables, and conventions for database operations.

Security Fix(es):

  • perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder (CVE-2026-73194)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Record
ALSA-2026:71608
Updated
2026-11-02
OSVAZL-96704 No score

CVE-2026-73194 affecting package perl-DBI for versions less than 1.652-1

DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

preparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with atoi(src) and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through sprintf(start, ":p%d", idx++) to ':p-2147483648', 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.

Any caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.

Record
AZL-96704
Updated
2026-11-02
OSVCLSA-2026-1790834869 No score

perl-DBI: Fix of CVE-2026-73194

  • CVE-2026-73194: reject :N placeholders outside 1..99999 in preparse() so an oversized or overflowing number can no longer drive a heap out-of-bounds write; add the upstream t/60preparse.t cases
Record
CLSA-2026-1790834869
Updated
2026-11-02
OSVCLSA-2026-1790835624 No score

perl-DBI: Fix of CVE-2026-73194

  • CVE-2026-73194: reject :N placeholders outside 1..99999 in preparse() so an oversized or overflowing number can no longer drive a heap out-of-bounds write; add the upstream t/60preparse.t cases
Record
CLSA-2026-1790835624
Updated
2026-11-02
OSVMGASA-2026-0390 No score

Updated perl-DBI packages fix security vulnerabilities

DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse. DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.

Record
MGASA-2026-0390
Updated
2026-11-02
OSVopenSUSE-SU-2026:11754-1 No score

perl-DBI-1.653.0-1.1 on GA media

These are all security issues fixed in the perl-DBI-1.653.0-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11754-1
Updated
2026-11-02
OSVROOT-OS-DEBIAN-12-CVE-2026-73194 No score

CVE-2026-73194 in libdbi-perl - Patched by Root

Root has patched CVE-2026-73194 in the libdbi-perl package for Root:Debian:12. Multiple fixed versions available.

Record
ROOT-OS-DEBIAN-12-CVE-2026-73194
Updated
2026-11-02
OSVUSN-8841-1 No score

libdbi-perl vulnerabilities

It was discovered that the Perl DBI module did not correctly handle certain integer arithmetic operations. An attacker could possibly use this issue to cause a denial of service or execute arbitrary code. (CVE-2026-73193, CVE-2026-73194)

Record
USN-8841-1
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
perl-DBI
AlmaLinux:8
before 1.641-10.module_el8.10.0+4282+4ee1dbd0
1.641-10.module_el8.10.0+4282+4ee1dbd0
perl-DBI
AlmaLinux:10
before 1.643-26.el10_2.6
1.643-26.el10_2.6
perl-DBI
AlmaLinux:9
before 1.643-9.el9_8.6
1.643-9.el9_8.6
perl-DBI
AlmaLinux:8
before 1.641-3.el8_10
1.641-3.el8_10
perl-DBI
Azure Linux:3
before 1.652-1
1.652-1
perl-dbi
Alpaquita:23
1.643-r4 up to 1.652-r0
1.652-r0
perl-dbi
Alpaquita:25
1.647-r0 up to 1.652-r0
1.652-r0
perl-dbi
Alpaquita:stream
1.643-r3 up to 1.652-r0
1.652-r0
perl-DBI
TuxCare:AlmaLinux:9.6
before 1.643-9.el9_6.tuxcare.els4
1.643-9.el9_6.tuxcare.els4
perl-DBI
TuxCare:AlmaLinux:9.2
before 1.643-9.el9_2.tuxcare.els4
1.643-9.el9_2.tuxcare.els4
Show 44 moreShow less
Affected packages
PackageAffectedFixed
libdbi-perl
Debian:12
before 1.643-4+deb12u2, plus listed versions
1.643-41.643-4+deb12u1
1.643-4+deb12u2
libdbi-perl
Debian:13
before 1.652-2~deb13u1, plus listed versions
1.647-11.647-1+deb13u11.648-11.649-11.650-11.651-11.652-1
1.652-2~deb13u1
libdbi-perl
Debian:14
before 1.652-1, plus listed versions
1.647-11.648-11.649-11.650-11.651-1
1.652-1
perl-DBI
Mageia:10
From an advisory covering 2 CVEs
before 1.652.0-2.mga10
1.652.0-2.mga10
perl-DBI
Mageia:9
From an advisory covering 2 CVEs
before 1.652.0-1.1.mga9
1.652.0-1.1.mga9
perl-DBI
openEuler:24.03-LTS-SP3
before 1.643-7.oe2403sp3
1.643-7.oe2403sp3
perl-DBI
openEuler:20.03-LTS-SP4
before 1.643-6.oe2003sp4
1.643-6.oe2003sp4
perl-DBI
openEuler:22.03-LTS-SP4
From an advisory covering 2 CVEs
before 1.643-8.oe2203sp4
1.643-8.oe2203sp4
perl-DBI
openEuler:24.03-LTS-SP1
From an advisory covering 2 CVEs
before 1.643-8.oe2403sp1
1.643-8.oe2403sp1
perl-DBI
openEuler:24.03-LTS-SP4
From an advisory covering 2 CVEs
before 1.648-4.oe2403sp4
1.648-4.oe2403sp4
perl-DBI
Red Hat:enterprise_linux:8::appstream
before 0:1.641-10.module+el8.10.0+24875+bc962974
0:1.641-10.module+el8.10.0+24875+bc962974
perl-DBI-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:1.641-10.module+el8.10.0+24875+bc962974
0:1.641-10.module+el8.10.0+24875+bc962974
perl-DBI-debugsource
Red Hat:enterprise_linux:8::appstream
before 0:1.641-10.module+el8.10.0+24875+bc962974
0:1.641-10.module+el8.10.0+24875+bc962974
perl-DBI
Red Hat:enterprise_linux:10.2
before 0:1.643-26.el10_2.6
0:1.643-26.el10_2.6
perl-DBI-debuginfo
Red Hat:enterprise_linux:10.2
before 0:1.643-26.el10_2.6
0:1.643-26.el10_2.6
perl-DBI-debugsource
Red Hat:enterprise_linux:10.2
before 0:1.643-26.el10_2.6
0:1.643-26.el10_2.6
perl-DBI
Red Hat:enterprise_linux:9::appstream
before 0:1.643-9.el9_8.6
0:1.643-9.el9_8.6
perl-DBI-debuginfo
Red Hat:enterprise_linux:9::appstream
before 0:1.643-9.el9_8.6
0:1.643-9.el9_8.6
perl-DBI-debugsource
Red Hat:enterprise_linux:9::appstream
before 0:1.643-9.el9_8.6
0:1.643-9.el9_8.6
perl-DBI
Red Hat:enterprise_linux:8::baseos
before 0:1.641-3.el8_10
0:1.641-3.el8_10
perl-DBI-debuginfo
Red Hat:enterprise_linux:8::baseos
before 0:1.641-3.el8_10
0:1.641-3.el8_10
perl-DBI-debugsource
Red Hat:enterprise_linux:8::baseos
before 0:1.641-3.el8_10
0:1.641-3.el8_10
perl-DBI
Rocky Linux:8
before 0:1.641-10.module+el8.10.0+40328+bc090241
0:1.641-10.module+el8.10.0+40328+bc090241
perl-DBI
Rocky Linux:8
before 0:1.641-10.module+el8.10.0+40328+f4c7f87b
0:1.641-10.module+el8.10.0+40328+f4c7f87b
perl-DBI
Rocky Linux:8
before 0:1.641-10.module+el8.10.0+40328+3ea70367
0:1.641-10.module+el8.10.0+40328+3ea70367
perl-DBI
Rocky Linux:8
before 0:1.641-10.module+el8.10.0+40328+0878361a
0:1.641-10.module+el8.10.0+40328+0878361a
perl-DBI
Rocky Linux:10
before 0:1.643-26.el10_2.6
0:1.643-26.el10_2.6
perl-DBI
Rocky Linux:9
before 0:1.643-9.el9_8.6
0:1.643-9.el9_8.6
perl-DBI
Rocky Linux:8
before 0:1.641-3.el8_10
0:1.641-3.el8_10
libdbi-perl
Ubuntu:Pro:14.04:LTS
before 1.630-1ubuntu0.1~esm8, plus listed versions
1.627-11.628-11.630-11.630-1ubuntu0.1~esm11.630-1ubuntu0.1~esm41.630-1ubuntu0.1~esm51.630-1ubuntu0.1~esm6
1.630-1ubuntu0.1~esm8
libdbi-perl
Ubuntu:Pro:16.04:LTS
before 1.634-1ubuntu0.2+esm4, plus listed versions
1.633-11.634-11.634-1build11.634-1ubuntu0.11.634-1ubuntu0.21.634-1ubuntu0.2+esm11.634-1ubuntu0.2+esm2
1.634-1ubuntu0.2+esm4
libdbi-perl
Ubuntu:Pro:18.04:LTS
before 1.640-1ubuntu0.3+esm3, plus listed versions
1.637-11.639-11.640-11.640-1ubuntu0.11.640-1ubuntu0.21.640-1ubuntu0.31.640-1ubuntu0.3+esm1
1.640-1ubuntu0.3+esm3
libdbi-perl
Ubuntu:Pro:20.04:LTS
before 1.643-1ubuntu0.1+esm3, plus listed versions
1.642-11.642-1build11.643-11.643-1ubuntu0.11.643-1ubuntu0.1+esm1
1.643-1ubuntu0.1+esm3
libdbi-perl
Ubuntu:22.04:LTS
before 1.643-3ubuntu0.3, plus listed versions
1.643-3build21.643-3build31.643-3ubuntu0.1
1.643-3ubuntu0.3
libdbi-perl
Ubuntu:24.04:LTS
before 1.643-4ubuntu0.3, plus listed versions
1.643-41.643-4build11.643-4build21.643-4build31.643-4ubuntu0.1
1.643-4ubuntu0.3
libdbi-perl
Ubuntu:26.04:LTS
before 1.647-1ubuntu0.26.04.3, plus listed versions
1.647-11.647-1build11.647-1ubuntu0.26.04.1
1.647-1ubuntu0.26.04.3
libdbi-perl
Ubuntu:Pro:14.04:LTS
From an advisory covering 2 CVEs
before 1.630-1ubuntu0.1~esm8, plus listed versions
1.627-11.628-11.630-11.630-1ubuntu0.1~esm11.630-1ubuntu0.1~esm41.630-1ubuntu0.1~esm51.630-1ubuntu0.1~esm6
1.630-1ubuntu0.1~esm8
libdbi-perl
Ubuntu:Pro:16.04:LTS
From an advisory covering 2 CVEs
before 1.634-1ubuntu0.2+esm4, plus listed versions
1.633-11.634-11.634-1build11.634-1ubuntu0.11.634-1ubuntu0.21.634-1ubuntu0.2+esm11.634-1ubuntu0.2+esm2
1.634-1ubuntu0.2+esm4
libdbi-perl
Ubuntu:Pro:18.04:LTS
From an advisory covering 2 CVEs
before 1.640-1ubuntu0.3+esm3, plus listed versions
1.637-11.639-11.640-11.640-1ubuntu0.11.640-1ubuntu0.21.640-1ubuntu0.31.640-1ubuntu0.3+esm1
1.640-1ubuntu0.3+esm3
libdbi-perl
Ubuntu:Pro:20.04:LTS
From an advisory covering 2 CVEs
before 1.643-1ubuntu0.1+esm3, plus listed versions
1.642-11.642-1build11.643-11.643-1ubuntu0.11.643-1ubuntu0.1+esm1
1.643-1ubuntu0.1+esm3
libdbi-perl
Ubuntu:22.04:LTS
From an advisory covering 2 CVEs
before 1.643-3ubuntu0.3, plus listed versions
1.643-3build21.643-3build31.643-3ubuntu0.1
1.643-3ubuntu0.3
libdbi-perl
Ubuntu:24.04:LTS
From an advisory covering 2 CVEs
before 1.643-4ubuntu0.3, plus listed versions
1.643-41.643-4build11.643-4build21.643-4build31.643-4ubuntu0.1
1.643-4ubuntu0.3
libdbi-perl
Ubuntu:26.04:LTS
From an advisory covering 2 CVEs
before 1.647-1ubuntu0.26.04.3, plus listed versions
1.647-11.647-1build11.647-1ubuntu0.26.04.1
1.647-1ubuntu0.26.04.3
perl-DBI
openSUSE:Tumbleweed
From an advisory covering 3 CVEs
before 1.653.0-1.1
1.653.0-1.1

History

History
RecordedChangedSources
affected, facts
affected
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-73194 is a critical vulnerability (CVSS 9.1) in perl-DBI, published August 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.49%, the 42nd percentile. Fixed in perl-DBI 1.641-10.module_el8.10.0+4282+4ee1dbd0.

References

Show 45 moreShow less
MoveEnter Open