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

JavaScript modularity explained

Table of contents Preface: 1. Concept 2. The bene...

A time-consuming troubleshooting process record of a docker error

Table of contents origin Environmental Informatio...

Detailed explanation of MySQL database paradigm

Preface: I have often heard about database paradi...

WeChat applet implements calculator function

This article shares the specific code for the WeC...

js to achieve 3D carousel effect

This article shares the specific code for impleme...

Nginx URL rewriting mechanism principle and usage examples

URL rewriting helps determine the preferred domai...

Design theory: On the issues of scheme, resources and communication

<br />This problem does not exist in many sm...

The marquee element implements effects such as scrolling fonts and pictures

The marquee element can achieve simple font (image...

Vue.js implements the code of clicking the icon to zoom in and leaving

The previous article introduced how Vue can reali...

Detailed explanation of Vue's calculated properties

1. What is a calculated attribute? In plain words...

Summary of practical skills commonly used in Vue projects

Table of contents Preface 1. Use $attrs and $list...

Vue implements click feedback instructions for water ripple effect

Table of contents Water wave effect Let's see...

Linux general java program startup script code example

Although the frequency of starting the shell is v...

Detailed tutorial on installing Protobuf 3 on Ubuntu

When to install If you use the protoc command and...