Description
DBI versions before 1.656 for Perl hang on a later open of a DBD::DBM table because a failed open_data does not release the table's lock.

open_data creates the table's lock file and takes an exclusive flock on it for a CREATE, before the checks that can croak: a dbm_mldbm value that is not a module name, a failing tie, or a missing data file. The croak unwinds before the table object is blessed, so nothing releases the lock, and the meta data holding the open descriptor stays cached on the database handle.

The dbm_mldbm and dbm_type values come from the DSN or the connect attributes, so a caller that chooses the serializer or the storage backend can trigger the failure.

The flock has no timeout, so a later open of that table (even through a separate database handle) blocks for as long as the handle holding the stale lock lives, in the same process or any other.
Published: 2026-10-20
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service (application hang)
Action: Immediate Patch
AI Analysis

Impact

DBI versions earlier than 1.656 acquire an exclusive lock on a DBD::DBM table before performing checks that can cause the creation to fail. If the open_data call croaks due to an invalid serializer, missing data file, or failed tie, the lock is never released and the table’s metadata remains cached. Subsequent attempts to open the same table, even by a different database handle or process, block indefinitely, effectively freezing the application or any process that tries to access the table.

Affected Systems

Perl DBI libraries earlier than version 1.656, including any deployments that use DBD::DBM for local data storage. The vulnerability is tied to the library’s handling of serializer selection and storage backend configuration via the DSN or connection attributes.

Risk and Exploitability

The flaw results in a local denial‑of‑service; an attacker that can trigger a failed open_data operation for a specific table can cause the application or any processes that attempt to open that table to hang. The problem is purely a resource release issue and does not provide code execution or data exfiltration. No exploit probability data is available, and the CVE is not listed in CISA’s Known Exploited Vulnerabilities catalog. The primary attack vector is a local or privileged user manipulating DSN parameters or calling DBI functions that lead to a failed table initialization.

Generated by OpenCVE AI on October 21, 2026 at 03:19 UTC.

Remediation

Vendor Solution

Upgrade to DBI 1.656 or later.


OpenCVE Recommended Actions

  • Upgrade DBI to version 1.656 or later.
  • If an upgrade cannot be applied immediately, restart any processes that may hold stale locks to release the lock and clear the cached table metadata.
  • After a restart, verify that no stale lock files remain on disk; if present, remove them manually to ensure future opens succeed without blocking.

Generated by OpenCVE AI on October 21, 2026 at 03:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 21 Oct 2026 01:30:00 +0000

Type Values Removed Values Added
References

Tue, 20 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Description DBI versions before 1.656 for Perl hang on a later open of a DBD::DBM table because a failed open_data does not release the table's lock. open_data creates the table's lock file and takes an exclusive flock on it for a CREATE, before the checks that can croak: a dbm_mldbm value that is not a module name, a failing tie, or a missing data file. The croak unwinds before the table object is blessed, so nothing releases the lock, and the meta data holding the open descriptor stays cached on the database handle. The dbm_mldbm and dbm_type values come from the DSN or the connect attributes, so a caller that chooses the serializer or the storage backend can trigger the failure. The flock has no timeout, so a later open of that table (even through a separate database handle) blocks for as long as the handle holding the stale lock lives, in the same process or any other.
Title DBI versions before 1.656 for Perl hang on a later open of a DBD::DBM table because a failed open_data does not release the table's lock
Weaknesses CWE-667
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-10-21T00:17:17.176Z

Reserved: 2026-10-17T11:40:00.659Z

Link: CVE-2026-111879

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-20T22:18:48.627

Modified: 2026-10-21T01:17:20.697

Link: CVE-2026-111879

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T03:30:14Z

Weaknesses