From 369f9070c34a09f8980e8ff20db6ff3c4525e89a Mon Sep 17 00:00:00 2001 From: Matt Hatcher <3768988+MatthewSH@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:25:07 -0500 Subject: [PATCH] Add InstallAnywhere self extracting archive to metadata extraction (#34874) **Related issue:** Resolves #34827 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [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/guides/committing-changes.md#changes-files) for more information. - [x] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [x] If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes ## Testing - [ ] Added/updated automated tests - [ ] Where appropriate, [automated tests simulate multiple hosts and test for host isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing) (updates to one hosts's records do not affect another) - [ ] QA'd all new/changed functionality manually For unreleased bug fixes in a release candidate, one of: - [ ] Confirmed that the fix is not expected to adversely impact load test results - [ ] Alerted the release DRI if additional load testing is needed --- changes/34827-self-extracting-exe-installers | 1 + pkg/file/pe.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changes/34827-self-extracting-exe-installers diff --git a/changes/34827-self-extracting-exe-installers b/changes/34827-self-extracting-exe-installers new file mode 100644 index 0000000000..92d5899e66 --- /dev/null +++ b/changes/34827-self-extracting-exe-installers @@ -0,0 +1 @@ +- add InstallAnywhere as a self-extracting archive for PE metadata extraction \ No newline at end of file diff --git a/pkg/file/pe.go b/pkg/file/pe.go index 0f5f7eb61c..9130eba920 100644 --- a/pkg/file/pe.go +++ b/pkg/file/pe.go @@ -62,8 +62,8 @@ func ExtractPEMetadata(tfr *fleet.TempFileReader) (*InstallerMetadata, error) { productVersion := strings.TrimSpace(e["ProductVersion"]) if productName != "" { productName = strings.TrimSpace(productName) - if productName == "7-Zip" { - // This may be a 7-Zip self-extracting archive. + if productName == "7-Zip" || productName == "InstallAnywhere" { + // This may be a 7-Zip or InstallAnywhere self-extracting archive. sfxName = productName sfxVersion = productVersion continue