2.1.1 Ensure 'extproc' Is Not Enabled

Information

extproc is Oracle's External Procedure Agent, used to call external C or C++ routines compiled as shared libraries ( .so, .dll ) from PL/SQL.

There are two deployment models:

- Listener-based configuration - The extproc agent is started and managed by the TNS Listener. Each external call is routed through the listener process.This approach exposes a TCP socket and therefore increases the attack surface. The configuration is defined in listener.ora.
- Default (local) configuration - The extproc agent is spawned directly by the database process, using environment variables from $ORACLE_HOME/hs/admin/extproc.ora .This local configuration does not require the listener and does not expose a TCP port.

Oracle explicitly recommends the local configuration ( extproc.ora ) unless one of the following exceptions applies:

- Multi-threaded external procedure agents are required.
- Oracle Database is running in MTS mode on Microsoft Windows.
- The AGENT clause or AGENT IN clause is used to redirect external procedures to a remote extproc agent.

Leaving extproc configured through the listener unnecessarily exposes a network endpoint that could allow attackers to exploit unverified or malicious external libraries or to redirect extproc to arbitrary OS paths.

Using the default local configuration ( extproc.ora ) minimizes the attack surface because the external procedure agent is spawned by the database itself, without any listener interaction or network exposure.

This configuration aligns with Oracle's recommended best practices and reduces the risk of arbitrary code execution on the database host.

Solution

To remediate this recommendation:

- Remove or comment out any extproc references from the listener.ora file.
- Ensure the local configuration file $ORACLE_HOME/hs/admin/extproc.ora exists and defines the required environment variables.
- Restart the listener if changes were made.Example: lsnrctl stoplsnrctl start

See Also

https://workbench.cisecurity.org/benchmarks/23897

Item Details

Category: SECURITY ASSESSMENT AND AUTHORIZATION, SYSTEM AND COMMUNICATIONS PROTECTION

References: 800-53|CA-9, 800-53|SC-7, 800-53|SC-7(5), CSCv7|9.2

Plugin: Windows

Control ID: 317057755df4829bc6020a3ff9306e11917ce19b71bf512f04d007ff5c86f7d5