MySQL exposes Riddle vulnerability that can cause username and password leakage

MySQL exposes Riddle vulnerability that can cause username and password leakage

The Riddle vulnerability targeting MySQL versions 5.5 and 5.6 can leak username and password information through a man-in-the-middle attack. Please update to version 5.7 as soon as possible.

The Riddle vulnerability exists in the DBMS Oracle MySQL, and attackers can use it to steal usernames and passwords through man-in-the-middle authentication.

"Riddle is a high severity security vulnerability found in the Oracle MySQL 5.5 and 5.6 client database. It allows an attacker to use Riddle in a man-in-the-middle position to compromise an SSL-configured connection between a MySQL client and server," the vulnerability description reads. “This vulnerability is a very dangerous one because firstly it affects MySQL – a very popular SQL database – and secondly it affects SSL connections, which by definition are supposed to be secure.”

The Riddle vulnerability, tracked as CVE-2017-3305, allows attackers to capture data, including usernames and passwords, when MySQL 5.5 and 5.6 send them to the server.

The security updates for versions 5.5.49 and 5.6.30 did not completely fix the vulnerability. Experts noted that MariaDB systems after version 5.7 are not affected by the vulnerability.

Security researcher Pali Rohár said that the cause of the Riddle vulnerability was the BACKRONYM vulnerability that previously existed in the MySQL database and had not been fixed. The Backronym vulnerability can be used to leak passwords in a man-in-the-middle attack, even if the traffic is encrypted.

"The security updates for the stable versions of MySQL 5.5.49 and 5.6.30 added validation of security parameters after the authentication process is complete." "Since the action is taken after the authentication is complete, a Riddle man in the middle attack combined with SSL downgrade allows an attacker to steal the login data to authenticate and log into the MySQL server," Rohár wrote.

"Interestingly, when the MySQL server refuses to authenticate a user, the MySQL client does not report any SSL-related errors, but instead reports unencrypted error messages sent by the server. These error messages are controlled by the man-in-the-middle attacker."

Experts recommend updating client software to MySQL 5.7 or MariaDB as security updates for these applications are working properly.

PoC

The author provides a PoC script written in Perl. It will open the riddle on the local port 3307, and the MySQL server will run on localhost:3306.

Run riddle on the middleman server:

$ perl riddle.pl

Connect the MySQL client to the riddle:

$ mysql --ssl-mode=REQUIRED -h 127.0.0.1 -P 3307 -u user -p password

If you provide the correct username and password, riddle will connect to the server, execute the SQL statement and output:

SELECT COUNT(*) FROM information_schema.TABLES --> 121

The MySQL client will receive an error message sent by riddle:

ERROR 1045 (28000): Access denied: MITM attack

Oracle fails to fix vulnerabilities in a timely manner

The Riddle vulnerability was discovered in February, but it still affects Oracle MySql software.

“If you are not an Oracle customer, there is no use reporting vulnerabilities to them (even security-related ones). They can completely ignore any report and will be happy if no one knows about it, so they don’t have to fix it,” Rohár explained.

Summarize

The above is the solution I introduced to you for the MySQL Riddle vulnerability that can cause username and password leakage. I hope it will be helpful to you. If you have any questions, please leave me a message and I will reply to you in time. I would also like to thank everyone for their support of the 123WORDPRESS.COM website!

You may also be interested in:
  • How to quickly add columns in MySQL 8.0
  • Detailed explanation of the use of MySQL Online DDL
  • How to solve the synchronization delay caused by MySQL DDL
  • Detailed explanation of MySQL 8.0 atomic DDL syntax
  • MySQL online DDL tool gh-ost principle analysis
  • Use of MySQL DDL statements
  • Summary of common Mysql DDL operations
  • Analysis of the new features of MySQL 8.0 - transactional data dictionary and atomic DDL
  • Basic statements of MySQL data definition language DDL
  • MySQL 8.0 DDL atomicity feature and implementation principle
  • Summary of using MySQL online DDL gh-ost
  • Solve the problem of blocking positioning DDL in MySQL 5.7
  • MySQL 8.0 new features: support for atomic DDL statements
  • Summary of MySQL 8.0 Online DDL Quick Column Addition

<<:  How to simulate network packet loss and delay in Linux

>>:  How to use and limit props in react

Recommend

Install JDK1.8 in Linux environment

Table of contents 1. Installation Environment 2. ...

Detailed explanation of JavaScript prototype and examples

Table of contents The relationship between the co...

Detailed installation and configuration of hadoop2.7.2 under ubuntu15.10

There are many Hadoop installation tutorials on L...

Detailed usage of Linux text search command find

The find command is mainly used to find directori...

JavaScript implements checkbox selection function

This article example shares the specific code of ...

Common usage of regular expressions in Mysql

Common usage of Regexp in Mysql Fuzzy matching, c...

Detailed explanation of nginx configuration file interpretation

The nginx configuration file is mainly divided in...

Detailed explanation of various loop speed tests in JS that you don’t know

Table of contents Preface 1. for loop 2. while lo...

Vue commonly used high-order functions and comprehensive examples

1. Commonly used high-order functions of arrays S...

Implementation of select multiple data loading optimization in Element

Table of contents Scenario Code Implementation Su...

How to solve the timeout during pip operation in Linux

How to solve the timeout problem when pip is used...

How to Develop a Progressive Web App (PWA)

Table of contents Overview Require URL of the app...

Detailed steps to install Docker mongoDB 4.2.1 and collect springboot logs

1: Install mongodb in docker Step 1: Install mong...

Will this SQL writing method really cause the index to fail?

Preface There are often some articles on the Inte...