Flaws in Moodle CMS put thousands of e-learning websites at risk

Organizations that use the popular Moodle learning management system should deploy the latest patches as soon as possible because they fix vulnerabilities that could allow attackers to take over web servers.

Moodle is an open source platform used by schools, universities, and other organizations to set up websites with interactive online courses. It's used by more than 78,000 e-learning websites from 234 countries that together have more than 100 million users.

A week ago the Moodle developers released updates for the still supported branches of the platform: 3.2.2, 3.1.5, 3.0.9 and 2.7.19. The release notes mentioned that "a number of security related issues were resolved," but didn't provide any additional details about their nature or impact.

The severity of the flaws became apparent Monday, when security researcher Netanel Rubin, who found the vulnerabilities, published a detailed blog post about them. They don't seem too critical on their own, but when combined, they allow attackers to create hidden administrative accounts and execute malicious PHP code on the underlying server.

The exploit takes advantage of some false assumptions made by the developers, which Rubin described as a logic flaw, an Object Injection, a double SQL injection, and an overly permissive administrative dashboard.

The logic issue stems from the reimplementation of a certain function without taking into account decisions made by the original function's developers. According to the researcher, it is the result of "having too much code, too many developers and lacking documentation."

"Keep in mind that logical vulnerabilities can and will occur in almost all systems featuring a large code base," Rubin said. "Security issues in large code bases is, of course, not Moodle specific."

One factor that somewhat limits the impact of the flaws is that exploiting them requires an account on the targeted website. That's not much of a barrier though considering how many registered users these websites have.

Gaining administrative privileges on the Moodle platform is not only dangerous because attackers could install a PHP backdoor by uploading malicious plug-ins or templates, but also because Moodle installations store sensitive and private information about students taking online courses.