-
Notifications
You must be signed in to change notification settings - Fork 446
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
CVEs incorrectly applied to EAP versions of IntelliJ IDEA #22723
Comments
Linked to Unthread ticket:
|
@mostlikelee, is this a duplicate? |
@sharon-fdm I don't believe so |
After further investigation, Jetbrains EAP products are only providing build numbers instead of the common version string (ie. 2024.3`). We will attempt to reach out to Jetbrains, but other options to consider:
|
Confirmed with JetBrains that EAP versions can reliably be correlated with published versions by e.g. 243.xx.yy -> EAP for 2024.3 (prepend 20, split 3rd digit of major version to minor version, truncate) We'll want to ensure we're dealing with a three-digit major version prior to doing this munging since if you go back far enough there are some two-digit versions. Since EAP versions are prereleases, an EAP should be considered as an earlier version than the release; if a vuln was fixed in 2024.3 then EAP 243.xx.yy would be vulnerable, but EAP 244.xx.yy wouldn't be. |
Was looking at fixing this in |
Looking at this further/chatting through with @mostlikelee, thinking we should pull the current sanitization for CPE purposes into a struct on CPE translations instead. To bound scope this EAP issue will be the first case with the revised architecture, with a follow-on ticket for cleaning up the rest of the sanitization. |
Scope of this fix will be on macOS, as we're going to rely on bundle ID to spot EAPs. We can expand to Windows/Linux later by software name matching but bundle ID pattern matching will catch all current and future JetBrains IDEs as they're consistent about naming. For reference, bouncing between standard and EAP versions of various JetBrains products gets me this on macOS:
GoLand betas show up as EAPs. |
Had to rework this to use the existing Going to create an issue to move this version mutation logic from ingest to CPE resolution as the real reason we're munging version numbers is for vuln matching so we can do this once per vulns run rather than once per software ingest. But in the interim this gets rid of false positives while avoiding false negatives for IDE vulnerabilities that didn't get a bunch of backported patches. That last caveat applies to CVE-2024-37051, which had both backports and some EAPs as vulnerable, however JetBrains expires access to EAPs and all affected versions (and all newer EAPs for the same products) have been expired by now, so you can't get to an exploitable state for those EAPs anymore. As such, the false negative on that particular CVE for EAPs only seems fine. |
…ck purposes (#24783) For #22723. # Checklist for submitter If some of the following don't apply, delete the relevant line. <!-- Note that API documentation changes are now addressed by the product design team. --> - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files) for more information. - [x] Added/updated tests - [x] Manual QA for all new/changed functionality
Fleet version: 4.57.2
💥 Actual behavior
CVEs are being incorrectly applied to EAP versions of IntelliJ IDEA. For example,
CVE-2017-8316
is listed on NVD as affecting up to (excluding) 2017.2.2.Fleet is returning EAP versions of IntelliJ as affected by this CVE when they shouldn't apply.
To QA
Grab a JetBrains EAP for macOS (currently Writerside is the only JetBrains product with an active EAP) and open it so it shows up in apps (after refreshing the host). It should show as version 2024.2.99.xx.yy in the UI.
Grab the PhpStorm EAP from this Fleet GDrive link. Open it (it'll bail after a few seconds, but should show up anyway; if it doesn't you may need to update the database with an opened-at timestamp). Refresh the host, then run a vulnerabilities cron. You should see no vulnerabilities.
Change the version in the database to 2022.3.99.123.456. Run the vulnerabilities cron (or command) again. You should now see two vulnerabilities (previously PhpStorm EAPs would show all three vulns that PhpStorm has ever had).
The text was updated successfully, but these errors were encountered: