Security

A 2015 object injection flaw reached a very large number of sites

CVE-2015-8562 exposed what happens when a popular platform accumulates installations that nobody maintains.

Vulnerabilities are handled in public or not at allPiece 2 of 3 in this section

A server rack with one amber indicator lit

December 2015. The exposure was not the bug’s severity so much as the size of the installed base nobody was updating.

The vulnerability and what the record shows

In December 2015, a critical vulnerability in Joomla's session-handling code was disclosed and patched. The CVE identifier assigned was CVE-2015-8562. The flaw was an object injection vulnerability triggered through the HTTP User-Agent header during session registration — but what matters for governance purposes is not the mechanics of the exploit, which are documented in the public record, but the speed with which it was weaponised and the scale of what it reached.

The Joomla Security Strike Team published the fix in Joomla 3.4.6 ↗, released on 14 December 2015. Reports from security firms monitoring exploit traffic at the time documented automated scanning activity within hours of the advisory going public. That speed was not unusual for 2015; the ecosystem of automated tools probing for known CMS vulnerabilities was already mature. What was unusual was the sheer number of installations that remained exposed days, weeks and months later.

Chronology

  1. October 2014Drupal CVE-2014-3704 ("Drupageddon") disclosed; automated exploitation documented within hours
  2. 14 December 2015Joomla 3.4.6 released; CVE-2015-8562 advisory published simultaneously by the Security Strike Team
  3. December 2015 (within hours)security researchers document automated exploit traffic targeting unpatched installations
  4. Shortly afterJoomla 3.4.7 released to address a related issue

Joomla's market position made the arithmetic brutal. According to figures from W3Techs, Joomla was at the time among the three most widely deployed content management systems on the public web, accounting for several percentage points of all sites with detectable CMS software. Because shared hosting had made the platform easy to install — one-click installers from companies such as Softaculous and Fantastico placed a working Joomla instance in minutes — the installed base far exceeded the number of sites whose owners were actively engaged with the software. The gap between installations and maintained installations is where CVE-2015-8562 found its foothold.

The unmaintained installation problem

A CMS built for easy deployment is also built for easy abandonment. A web developer installs Joomla for a client, builds the site, and moves on. The client may not have the technical background to monitor security advisories. Hosting accounts renew automatically; sites stay online long after their last content update. The vulnerability reaches those sites exactly as easily as it reaches sites with attentive administrators, and the attentive sites patch within hours while the abandoned ones stay open indefinitely.

This is not a problem Joomla invented or could have solved by writing better code. WordPress and Drupal both faced structurally identical circumstances. Drupal's CVE-2014-3704, known publicly as "Drupageddon," provided a direct precedent: a critical SQL injection disclosed in October 2014 that was automated against unpatched Drupal sites within hours of the advisory. The Drupal Security Team's post-incident documentation noted that any site not patched within seven hours of the advisory should be treated as compromised. The Joomla situation in December 2015 had the same shape: the window between disclosure and widespread exploitation was measured in hours, not days.

What the December 2015 incident added to the record was confirmation that the unmaintained installation population had grown large enough to constitute a meaningful attack surface in its own right. Security researchers monitoring botnet traffic in the weeks after the advisory observed that compromised Joomla installations were being enrolled into networks used for spam distribution, credential stuffing and further scanning. The sites themselves were often not the target; they were infrastructure.

The project's public response and process

The Joomla Security Strike Team, the standing body responsible for receiving reports, assessing severity and coordinating fixes, had been in place for years before December 2015. Its process requires that a patch be prepared and tested before disclosure, so that the gap between public knowledge of a vulnerability and the availability of a fix is as small as possible — ideally zero. For CVE-2015-8562 that process worked as designed: patch and advisory appeared together.

What the process cannot govern is the behaviour of the installed base after disclosure. The project made a subsequent maintenance release, 3.4.7, available quickly to address a related issue, and the security advisory page on the Joomla developer site documented the affected versions clearly. None of that compels an unattended server to update itself.

The Joomla Security Strike Team published the fix in Joomla 3.4.6, released on 14 December 2015.

The incident did push the project's leadership toward more visible communication about the importance of staying current. It also contributed to subsequent discussions about automatic minor-version updates — a mechanism WordPress had already introduced in 2013 — though Joomla's approach to background updates developed more cautiously, partly because the extension ecosystem created compatibility risks that made silent updates genuinely dangerous for some configurations. That tension between security and ecosystem stability is a governance problem without a clean solution, and the record shows the project handling it incrementally rather than decisively.

Scale and the structural lesson

W3Techs ↗ has tracked CMS market share continuously, and its figures illustrate the structural dynamic: Joomla's share has declined since its peak but the absolute number of Joomla installations on the public web remained large enough in 2015 that even a small percentage of unpatched sites represented tens of thousands of targets. The extension directory, the one-click installer ecosystem and the template marketplace had all contributed to a deployment footprint that the project's security infrastructure — however well designed — could not fully protect.

That is not a criticism unique to Joomla. It is the condition of any open-source platform that achieves genuine mass adoption. The GPL licence that governs distribution guarantees users the right to run the software without obligation to the project; there is no legal or contractual lever to pull when an installation goes unmaintained. What the project can do is publish clearly, patch quickly and design upgrade paths that reduce friction. On the first two counts, the December 2015 response was competent. On the third, the period between Joomla 1.5 and the later 2.x and 3.x series had already produced compatibility breaks that made some administrators reluctant to upgrade — a reluctance the history of the migration problem helps explain. Administrators who had been burned by a major-version upgrade were less likely to trust even a minor security release.

CVE-2015-8562 sits in the public National Vulnerability Database ↗ record with a CVSS score reflecting remote code execution without authentication — the most serious category of vulnerability classification. That severity rating, combined with an installed base that included a large unmaintained tail, produced an incident that security researchers at the time described as one of the larger CMS exploitation events of the year. The Joomla project's governance record around the event is largely clean: the process ran as documented, the patch shipped the same day as the advisory, and the public communication was accurate. The problem was not the process. The problem was the distance between an open-source project and the millions of instances of its software running on servers nobody is watching.