[
https://issues.apache.org/jira/browse/HIVE-20055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Shelukhin deleted HIVE-20055:
------------------------------------
> SQL injection via metastore ACID APIs (and maybe queries, although that's
> unlikely)
> -----------------------------------------------------------------------------------
>
> Key: HIVE-20055
> URL: https://issues.apache.org/jira/browse/HIVE-20055
> Project: Hive
> Issue Type: Bug
> Reporter: Sergey Shelukhin
> Assignee: Thejas M Nair
> Priority: Major
>
> [~thejas] asked me to create this JIRA based on my earlier email :)
> {noformat}
> This might be doable with a specially crafted query, I’m not sure what APIs
> calls have what checks (e.g. via Hive parser) that would prevent the below.
> However, for remote metastore (default on many clusters currently, afaik it’s
> the default for ACID) we expose thrift API that accepts strings e.g.
> get_valid_write_ids.
> That passes the string table names to TxnHandler::getValidWriteIdsForTable,
> that inserts them into the query string w/quoteString call; quoteString
> doesn’t do any validation.
> Some ready made delete statements also exist e.g. "delete from REPL_TXN_MAP
> where RTM_SRC_TXN_ID = " + sourceTxnId + " and RTM_REPL_POLICY = " +
> quoteString(rqst.getReplPolicy());
> I think my replication policy might be {' OR '1' = '1} ;)
> So, SQL injection might be possible thru these APIs.
> I wonder if this class should be switched to parameter based execution?
> DirectSQL could be used as an example, although that uses DataNucleus direct
> sql feature… at least we need some checks on these.
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)