-
Notifications
You must be signed in to change notification settings - Fork 574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MySQL binary classifier should distinguish between MySQL Cluster (ndb) and MySQL #3297
Comments
It should also be noted that MySQL Cluster isn't currently detected at all by the binary classifier because the version string doesn't match the expected patterns, so this will currently result in false negatives on the vulnerability matching side in grype. |
It may be that with trying to use only the existing binary classifier approach that we need to identify another binary (apart from mysql) that can identify the cluster component (perhaps one of the ndb_* ones?) and then update the existing mysql classifier to handle parsing the mysql version component from the combined |
I removed discussion for this one since we talked about it on the live stream. Dev note: if someone picks this up let's check out to see if this can fit in how we do the python binary: syft/syft/pkg/cataloger/binary/classifiers.go Lines 10 to 29 in 3267545
In this case we do want to enhance the classifier to return two packages. We need to check for both mysql and the cluster component in order to be sure that we can surface both packages. This should be separate from the mysql approach. |
I was fairly confused during the discussion about what the specific issues are. I'm reading this as: we should surface 2 packages from certain If the above is correct, I think this would be simple to do with a pair of classifiers that look for the right patterns and return appropriate |
What would you like to be added:
Currently, the MySQL binary classifiers don't distinguish between MySQL and MySQL (NDB) Cluster. The older versions of MySQL cluster do notdirectly align with the versions of MySQL they are built upon.
A specific example is MySQL Cluster v7.5.35. The MySQL Cluster version is of course
7.5.35
and the included MySQL version is5.7.47
In this case, we observe the following version string embedded within the mysql binary:
So in this instance, it would ideally raise up two packages, one for
mysql
5.7.47 (with a cpe likecpe:2.3:a:oracle:mysql
), and another package formysql-cluster
7.5.35 (with a cpe likecpe:2.3:a:oracle:mysql_cluster
)Why is this needed:
For an accurate sbom and later vulnerability matching, we need to be able to distinguish between the various mysql implementations
Additional context:
It may be that this ends up being complex enough to be separated into a separate cataloger similar to the jvm cataloger that was recently implemented
The text was updated successfully, but these errors were encountered: