Updated WordPress has a security patch out for a programming blunder that you should apply ASAP.
The fix addresses a flaw that can be potentially exploited by hackers to hijack and take over WordPress-powered websites, by injecting malicious SQL database commands.
The core installation of WordPress is not directly affected, we're told, rather the bug is in a security function provided by the core to plugins and themes. In other words, a bug in the core leaves plugins and themes potentially at risk of being hacked, leading to whole sites being commandeered by miscreants.
Also, crafting a patch to the address the blunder without breaking tons of add-ons for WordPress turned out to be problematic, delaying the release of
"WordPress versions 4.8.2 and earlier are affected by an issue where $wpdb->prepare() can create unexpected and unsafe queries leading to potential SQL injection (SQLi)," the official advisory today warned. "WordPress core is not directly vulnerable to this issue, but we’ve added hardening to prevent plugins and themes from accidentally causing a vulnerability."
According to the flaw's finder, Anthony Ferrara, VP of engineering at Lingo Live, WordPress 4.8.2 was released last month in an attempt to shore up its
$wpdb->prepare() code, but that update was shoddy. As well as not fully addressing the underlying flaw, the update also broke "a metric ton of third-party code and sites – an estimated 1.2 million lines of code affected," Ferrara said.
Ferrara immediately warned the WordPress team that the 4.8.2 patch was insufficient and liable to break add-ons for the software; we're told the project initially refused to take him seriously. It only backed down – and prepared a better fix that doesn't break everything, aka version 4.8.3 – when he provided proof-of-concept exploit code for the lingering hole, and threatened to go public, all according to Ferrara.
"One of our struggles here, as it often is in security, is how to secure things while also breaking as little as possible," Ferrara quoted the WordPress team as saying.
While the veep acknowledged that many of the people working on WordPress are volunteers, he expressed frustration at the group's attitude towards security. However, he remains hopeful that the project will get better at responding faster to reports of exploitable holes in the codebase.
"It took literally five weeks to even get someone to consider the actual vulnerability," Ferrara said.
"From there, it took me publicly threatening full disclosure to get the team to acknowledge the full scope of the issue, though they did start to engage deeper prior to the full disclosure threat. I was disappointed for a good part of the past six weeks. I’m now cautiously hopeful."
You can find more technical details on the vulnerability, here. In any case, make sure you install or upgrade to version 4.8.3 on your websites to avoid being hacked via your plugins and themes. ®
Updated to add
Ferrara has been in touch to say he disputes that the WordPress core is not directly affected, as the open-source project described. The core contains the buggy code, he insists. "I disagree that core was not vulnerable," he told us. "The original proof-of-concept I shared with them was against core. Two queries in core are exploitable, though they require editor privileges."
As we understand it, the WordPress core SQL string escape code was flawed, but was accessible to site visitors only via plugins and tools. Ferrara reckons logged-in editors could also access the vulnerable functionality.
In any case, just patch and move on.