Joomla! World Conference 2026

If you develop Joomla extensions, sooner or later you will probably receive an email that starts with something like:

“We have discovered a security vulnerability in your extension.”

For many developers this is the first time such a report receives their inbox and that moment is very uncomfortable. I'm writing here from my own experience, and it was during my well deserved family holiday. You may immediately start wondering: How did I miss this? How could I have written this code? What will users think? Does this mean my extension is insecure?

Security issues happen to everyone

Modern software is complex. Even a relatively small Joomla extension can involve the CMS, database, permissions, HTTP requests, user input, third-party libraries and many different configurations. It is simply impossible to anticipate every possible way someone might try to abuse your code.

And this is not limited to small or inexperienced projects. As I wrote this article, the Linux kernel (which powers almost all of our Joomla servers) has183 critical vulnerabilities.

Screenshot which shows the critical vulnerabilities of Linux Kernel

The number of reported vulnerabilities does not automatically tell you how good or bad a project is. In fact, an active security community finding and reporting problems can be a sign of a healthy project.

Someone finding a vulnerability can be a good thing

Security researchers look at software differently from developers.

As developers, we usually test the expected workflow:

A user enters something, the application processes it, and the expected result is displayed.

A security researcher asks:

What if I change this ID? What if I'm not logged in? What if I don't use the UI? What if I have a different permission? What happens if I send completely unexpected input?

That perspective is incredibly valuable. A missing permission check or an insufficient input validation can be very easy to overlook during normal development, even when the code looks perfectly reasonable. When someone reports such an issue, they have potentially found it before someone with malicious intentions does.

Communication is key

One of the most important parts of handling a security vulnerability is communication. A good security process isn't just about fixing the code. It is also about communicating with the person who reported the issue and, when appropriate, with your users.

When receiving a report:

  • Take it seriously, but don't take it personally.
  • Communicate with the researcher and make sure you understand the issue.
  • Ask questions if something is unclear.
  • Confirm when you have reproduced the problem.
  • Let them know when you are working on a fix.
  • Release the fix and clearly communicate what users need to do.

Shout out

You don't need to immediately have all the answers. Saying “Thank you for the report. We are investigating this and will get back to you” is already much better than ignoring the report. Communication builds trust. The extension developers manual has an extensive article about best practices how to deal with security issues. Please read that carefully, it can help you avoiding mistakes in the first place.

Learn from every report

The best outcome isn't simply fixing the reported line of code.

Ask yourself:

Why was this vulnerability possible in the first place?

Perhaps you were missing an authorization check in one controller. When investigating, you might discover that the same pattern exists elsewhere. Fixing those additional cases can make the entire extension more secure. A security report can therefore improve not only your code, but also your development and testing practices.

Don't measure yourself by the number of security reports

Having received no security reports doesn't necessarily mean your extension has no security issues. It may simply mean nobody has found one yet, or nobody has reported it. Security is an ongoing process, which has accelerated massively with AI. New features, dependencies and integrations constantly introduce new possibilities.

The goal shouldn't be to become the developer who never receives a security report. The goal should be to become the developer who can receive one, investigate it without ego, communicate openly, fix it properly and learn from it.

A security vulnerability doesn't make you a bad developer. How you respond to it is what matters.

About the author

Did custom fields, the Joomla 4 architecture, lead the new media manager project and do currently lead the automated testing team. Do custom extension development and provide my own extensions Like DPMedia or DPCalendar on Digital Peak. I love Joomla and help here and there to make it the greatest CMS in the world.

Visit website

Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project

Comments