Impacts External Interfaces / APIs#
Yes.
The change extends the module interface exposed to playbooks and increases the set of Exasol operations invoked through pyexasol.
Main Threats#
Unsafe Inputs Enable SQL Injection Or Statement Abuse#
thrt~unsafe-inputs-enable-sql-injection-or-statement-abuse~1
Module inputs could be used to inject unsafe SQL or otherwise influence statement construction beyond the intended administrative action.
Status: draft
Needs: dsn
Identifier Quoting Errors Target The Wrong Object#
thrt~identifier-quoting-errors-target-the-wrong-object~1
Incorrect quoting, normalization, or escaping of identifiers could direct administrative SQL at the wrong Exasol object.
Status: draft
Needs: dsn
Ambiguous Inputs Trigger Unintended SQL Effects#
thrt~ambiguous-inputs-trigger-unintended-sql-effects~1
Unsafe or conflicting parameter combinations could cause unintended SQL operations or unclear runtime behavior.
Status: draft
Needs: dsn
Upstream Errors Surface Sensitive Data#
thrt~upstream-errors-surface-sensitive-data~1
Errors returned by drivers or Exasol could expose credentials, secrets, or confidential statement content when surfaced directly.
Status: draft
Needs: dsn
Outbound Connections Accept Insecure Transport Or Trust#
thrt~outbound-connections-accept-insecure-transport-or-trust~1
Connection setup could permit unencrypted transport or weakened certificate validation, enabling interception or impersonation.
Status: draft
Needs: dsn
Required Controls#
keep module parameters explicit and validate mutually unsafe combinations
construct SQL safely for identifiers, literals, and grant targets
sanitize surfaced driver and database errors
support only encrypted connections with explicit trust anchors
treat
exasol_queryand any futureexasol_scriptsurface as trusted-operator interfaces, not sandboxes
Mitigations#
Normalize And Validate Identifiers Before SQL Generation#
dsn~normalize-and-validate-identifiers-before-sql-generation~1
Normalize and validate identifiers before generating SQL for user, role, grant, and other administrative targets.
Status: draft
Covers:
scn~repeated-runs-do-not-add-unrequested-authorization-changes~1thrt~unsafe-inputs-enable-sql-injection-or-statement-abuse~1thrt~identifier-quoting-errors-target-the-wrong-object~1
Needs: impl, utest
Centralize Connection Parameter Mapping And Secret Sanitization#
dsn~centralize-connection-parameter-mapping-and-secret-sanitization~1
Centralize connection-parameter mapping and secret sanitization in shared runtime helpers.
Status: draft
Covers:
scn~password-not-exposed-in-failure-output~1scn~executed-queries-keep-object-names-but-redact-secrets~1thrt~upstream-errors-surface-sensitive-data~1
Needs: impl, utest
Encrypt Exasol Connections By Default#
dsn~encrypt-exasol-connections-by-default~2
Open Exasol connections only over encrypted transport. Unencrypted connections are not supported. Certificate validation remains enabled by default. When operators disable CA validation, they must provide a certificate fingerprint so the connection still uses an explicit trust anchor instead of downgrading to a fully untrusted TLS session.
Status: draft
Covers:
scn~exasol-connections-use-encrypted-transport-by-default~2scn~fingerprint-pinning-keeps-trust-explicit~1scn~untrusted-tls-overrides-are-rejected~1thrt~outbound-connections-accept-insecure-transport-or-trust~1
Needs: impl, utest
Applicable Questions#
Is input validation performed?
Is output data sanitized before use or display?
Is communication with the third-party system encrypted using TLS?