Scan returns false positive
-
eg:
Vulnerability found: LayerSlider 4.6.1 – Style Editing CSRF Vulnerability found: LayerSlider 4.6.1 – Remote Path Traversal File AccessThe above message would be fine if I wasn’t running LayerSlider 5.5.1
Can we check the version number of the plugin?
-
Hi cowboy3398,
It is not necessarily enough to be running a newer version. The scanner checks whether the version you have installed has _fixed_ the vulnerability.
In the case of LayerSlider, version 5.5.1 does not have a confirmed fix for the vulnerabilities listed.
I asked the plugin author about these two issues and he confirmed, that these issues have been fixed. But no details in which version.
The BPS plugin .52.5 version has fixed the bug in BPS version .50.8 about a year ago, but your plugin is reporting this: Vulnerability found: BulletProof Security .50.8 – Script Insertion. So obviously whatever you are checking for this: “the version you have installed has _fixed_ the vulnerability.” is not actually working correctly. Why not just keep this simple and use logic (ie compare current and bug plugin version numbers) or if you want to do a deeper accurate check then create a scanner to actually scan other plugin’s code instead of relying on a 3rd party external data source for that information. Otherwise you end up creating problems where problems do not actually exist.
Or another approach would be to clearly explain with a disclaimer that you are getting the security vulnerability data from a 3rd party external source and that external source may not have current accurate data about a plugin, but that opens up a whole other can of worms for you. My advice – keep it simple and just use version comparison logic. Or go the extra mile and create a scanner that actually scans plugin code.
Not sure if you can check against new plugin versions with bugfixes that have been uploaded to the WordPress Plugin Repository, but that check would be much more reliable than relying on a 3rd party data source for that information.
Hi @aitpro, thank you for your comments and suggestions.
My plugin already does the simple thing — compares a version installed versus the version that has been fixed.
The specific vulnerability that you have flagged (https://wpvulndb.com/vulnerabilities/7637) does not have a verified fix, which is why my scanner is reporting it as a vulnerability.
I’m adding the WScan Vulnerability Database maintainer to this thread so he can look into this further.
Kind regards,
Glen Scott
Sent LayerSlider devs a tweet asking for further info – https://twitter.com/_WPScan_/status/645509398295658496
Thanks for the information, added the fixed in to the vulnerability – https://wpvulndb.com/vulnerabilities/7637
Your changelog hosted on www.remarpro.com seems to have an issue and it is cut short, I downloaded the plugin and couldn’t find a changelog file in there from a quick look. We use the changelog as a source of information to identify fixed in information.
Comparing version numbers without using the ‘fixed in’ information would lead to a lot of false negatives. Some developers leave issues unfixed for multiple versions, some never fix at all.
Scanning the plugin’s code using static code analysis would also create a lot of false negative and false positive reports.
Look at the current best freely available PHP Static Code Analysis tool, RIPS, and you will see that static code analysis needs human interpretation to properly identify vulnerabilities.
Not just any human interpretation either, but someone quite familiar with PHP and has a good understanding of software security. This is not realistic for the average WordPress user.
Our solution (wpvulndb.com) may not be perfect, but we believe it is the current best way to record and distribute this information. And all for free! (for non commercial users)
We are constantly adding new issues and updating old ones with new information.
Yep, I get that, but since the 3rd party external data source is mistaken then the problem still exists and will continue to exist. The users freak out and get worried because they believe a plugin has a security vulnerability, which means I have to explain that this is a mistake and reassure the users and finally I would have to post a new thread in your plugin support forum every time this problem happens. So I really do not want to have to deal with that problem on an ongoing basis. I will add a Dismiss Notice function in the BPS plugin that displays a warning to users that the information about the BPS plugin is wrong. The users will then hopefully be reassured and understand that the information is simply wrong so that this cycle does not keep repeating itself over and over.
The 3rd party external data (wpvulndb.com) has been updated with the information now we have been made aware of it.
To help prevent false positives in our data for your plugin, as long as you add the information to your changelog we should pick up on that information fairly quickly.
We were posting at the same time. Yep, I think the best and simplest solution is for me to handle this in the BPS plugin to avoid all future headaches and freaked out users.
Posting again at the same time. Will do a proactive warning Dismiss Notice to users in BPS to take care of this problem. Thanks.
It would be nice if all average users understood about software versions, but a lot of them either do not understand what that means or they just do not get how things work in general. In an average week we get 30 emails about ancient vulnerabilities in BPS that have been fixed. We have a basic form email that we can copy and paste, but it gets old year after year. ??
I can see how that would get annoying. For us, and probably for most users, the first thing we check when we come across an old vulnerability is the plugin’s changelog.
If the fix is mentioned in there, we take the plugin developer’s word for it, if it is not in there we will try to contact the developer or reproduce ourselves.
Maybe mentioning them as fixed (the ones that have been) in the changelog would prevent a lot of users from getting to the stage where they email you for further information?
Yeah that would be nice, but these same users do not understand what and where a changelog is. ?? And these are the users that bother to send an email. The rest who do not understand anything about this stuff just uninstall plugins as soon as they come across any mention of a security vulnerability. So doing the literal “do this” or “X means this” is the only real solution. ie direct literal message – 1 + 1 = 2.
The real root of the problem is the misunderstanding/misconceptions about what the words “security vulnerability” mean in general and of course the different levels of severity. I would say that the majority of people believe that a security vulnerability in a plugin means that their website is at risk of being hacked. That is true in some cases, but not true in the majority of cases. A security vulnerability is simply a coding mistake/bug that needs to get fixed. When I explain this stuff to people they confirm that they did not understand/know this before. And these users are savvy users, not newbies. Sensationalism sells (just like sex) and calling a security vulnerability a coding mistake/bug would be boring. ?? In any case, what works in every case is cold hard facts and good info and not leaving things up to false perceptions or misunderstanding.
Marking as resolved.
Just adding some additional info. I checked with the person who tested this security vulnerabilty in .50.8 and that person was also responsible for updating the changelog if this bug/security vulnerability was valid. The PoC is incorrect/false/not valid since in order to execute this you would have to be logged in as an Administrator to the site. No credit was given to the person who reported this bug because the security vulnerability/bug report is false/incorrect/wrong. I believe new code was created to avoid other false reports in the future.
Edit|Update: I have confirmed that form sanitization code was added to the form to prevent other false security vulnerability reports from being posted in the future.
Proof of Concept (PoC):
=======================
The POST inject web vulnerability can be exploited by local attackers and by remote attackers without privileged application user account
with low or medium user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information
and steps below to continue.
- The topic ‘Scan returns false positive’ is closed to new replies.