COMMON WEAKNESS ENUMERATIONIncomplete

CWE-619

Dangling Database Cursor ('Cursor Injection')

If a database cursor is not closed properly, then it could become accessible to other users while retaining the same privileges that were originally assigned, leaving the cursor "dangling."

Abstraction

Base

Structure

Simple

Likelihood of Exploit

Medium

Understand the problem

What is the problem?

If a database cursor is not closed properly, then it could become accessible to other users while retaining the same privileges that were originally assigned, leaving the cursor "dangling."

Extended description

For example, an improper dangling cursor could arise from unhandled exceptions. The impact of the issue depends on the cursor's role, but SQL injection attacks are commonly possible.

Root cause

How and when does the problem arise?

Lifecycle phase

Implementation

This issue is currently reported for unhandled exceptions, but it is theoretically possible any time the programmer does not close the cursor at the proper time.
A cursor is a feature in Oracle PL/SQL and other languages that provides a handle for executing and accessing the results of SQL queries.

Risk

What does successful exploitation lead to?

Read Application DataModify Application Data

Affected security scopes: Confidentiality, Integrity

Defence

How is it prevented and fixed?

Implementation

Implementation-phase defence

Detail
Close cursors immediately after access to them is complete. Ensure that you close cursors if exceptions occur.