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)

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

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

CVE-2018-18476
https://nvd.nist.gov/vuln/detail/CVE-2018-18476

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

Última modificação: 1 fevereiro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.