ASA-2018-00025 – Ruby gem mysql-binuuid-rails: SQL Injection


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00025

Identificador(es)

ASA-2018-00025, CVE-2018-18476

Título

SQL Injection

Produto(s)

mysql-binuuid-rails

Versão(ões) afetada(s)

mysql-binuuid-rails <= 1.1.0

Versão(ões) corrigida(s)

mysql-binuuid-rails 1.1.1

Prova de conceito

Desconhecido

Descrição

mysql-binuuid-rails usa um tipo de dados que é derivado do tipo Binary, exceto, ela não converte o valor para hexadecimal. Ao invés, ela assume que a cadeia de caracteres provida é uma string hexadecimal válida e não realiza nenhuma checagem no valor.

ActiveRecord não explicitamente escapa o tipo de dados Binary (Type::Binary::Data) para o mysql. O escape é implícito como o tipo Binary sempre converte o valor para um hexadecimal para o uso do ActiveRecord.

Model.where(uuid: “ff’ OR ”='”) torna-se em:

SELECT `model`.* FROM `model` WHERE `model`.`uuid` = x'ff' OR ''='' LIMIT 11

Referência(s)

CVE-2018-18476
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18476

CVE-2018-18476
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-18476

Fix possible SQL injection issue #18
https://github.com/nedap/mysql-binuuid-rails/pull/18

Fix possible SQL injection issue (#18)
https://github.com/nedap/mysql-binuuid-rails/commit/9ae920951b46ff0163b16c55d744e89acb1036d4

CVE-2018-18476.md
https://gist.github.com/viraptor/881276ea61e8d56bac6e28454c79f1e6

mysql-binuuid-rails
https://rubygems.org/gems/mysql-binuuid-rails


Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 7 de novembro de 2018