Skip to content
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

update changelog prepare 4.62.1 #25393

Closed
wants to merge 20 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6519a16
Cherry-Pick: Handle long interned strings in MSI parsing (#25098)
iansltx Jan 2, 2025
d92984a
Cherry-Pick: Include pre-releases when building osquery version list …
iansltx Jan 2, 2025
3f7f9e3
to RC: UI - Improve validation of SMTP settings form (#25051) (#25100)
jacobshandling Jan 2, 2025
661c067
to RC: UI – Fix team changing on queries table search query change (#…
jacobshandling Jan 2, 2025
c5ec8fe
Cherry-Pick: Correct fix for long MSI interned strings (#25107)
iansltx Jan 2, 2025
3364d58
For R.C. - Unreleased bug fix: Hide install options from editing soft…
RachelElysia Jan 3, 2025
32a8a1a
cherry pick UI secret errors (#25117)
ghernandez345 Jan 3, 2025
82d9f46
Cherry-Pick: Repoint link to existing software install automation gui…
iansltx Jan 3, 2025
1f05269
cherry pick more scoped software fixes (#25126)
ghernandez345 Jan 6, 2025
b9067da
cherry pick software title id to added_app_store_app activity (#25125)
ghernandez345 Jan 6, 2025
cf566f7
Cherry-Pick: Fix detection of uninstall scripts when recording script…
iansltx Jan 6, 2025
f2ff46b
fix: retrigger automatic installations after label scope changes (#25…
jahzielv Jan 6, 2025
c969a7f
cherry pick for secret error message windows fix (#25174)
ghernandez345 Jan 6, 2025
95acb6e
Fixing issue where deleted profiles were being sent to devices. (#250…
getvictor Jan 6, 2025
4ffcbce
For R.C. - Fleet UI: Add copy for policy tied to install software (#2…
RachelElysia Jan 8, 2025
3252388
cherry pick for overflow issue for scoped software details modal (#25…
ghernandez345 Jan 8, 2025
455b25f
Cherry-pick: Hide updated time when loading OS versions table data (#…
gillespi314 Jan 8, 2025
0105dc6
Prepare for Fleet v4.62.0 (#25091)
lukeheath Jan 9, 2025
11127eb
Fix issue when identical MDM commands are sent twice to the same devi…
getvictor Jan 10, 2025
ce431cb
Adding changes for Fleet v4.62.1
georgekarrv Jan 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/scripts/update_osquery_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ def fetch_osquery_versions():
resp = conn.getresponse()
content = resp.read()
conn.close()
releases = json.loads(content.decode('utf-8'))

return [release['tag_name'] for release in releases if not release['prerelease']]
return [release['tag_name'] for release in json.loads(content.decode('utf-8'))]

def update_min_osquery_version_options(new_versions):
with open(FILE_PATH, 'r') as file:
Expand Down
81 changes: 81 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,84 @@
## Fleet 4.62.1 (Jan 13, 2025)

### Bug fixes

* Fixed issue when identical MDM commands were sent twice to the same device when replica DB was being used.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

anything other than this should have already been merged... looking for the rogue pr


## Fleet 4.62.0 (Jan 09, 2025)

## Endpoint operations
- Updated macos 13, 14 per latest CIS documents. Added macos 15 support.
- Updated queries API to support above targeted platform filtering.
- Updated UI queries page to filter, sort, paginate, etc. via query params in call to server.
- Added searchable query targets and cleaner UI for uses with many teams or labels.

## Device management (MDM)
- Added ability to use secrets (`$FLEET_SECRET_YOURNAME`) in scripts and profiles.
- Added ability to scope Fleet-maintained apps and custom packages via labels in UI, API, and CLI.
- Added capability to automatically generate "trigger policies" for custom software packages.
- Added UI for scoping software via labels.
- Added validation to prevent label deletion if it is used to scope the hosts targeted by a software installer.
- Added ability to filter host software based on label scoping.
- Added support for Fleet secret validation in software installer scripts.
- Updated `fleetctl gitops` to support scope software installers by labels, with the `labels_include_any` or `labels_exclude_any` conditions.
- Updated `fleetctl gitops` to identify secrets in scripts and profiles and saves them on the Fleet server.
- Updated `fleetctl gitops` so that when it updates profiles, if the secret value has changed, the profile is updated on the host.
- Added `/fleet/spec/secret_variables` API endpoint.
- Added functionality for skipping automatic installs if the software is not scoped to the host via labels.
- Added the ability to click a software row on the my device page and see the details of that software's installation on the host.
- Allowed software uninstalls and script-based host lock/unlock/wipe to run while global scripts are disabled.

## Vulnerability management
- Added missing vulncheck data from NVD feeds.
- Fixed MSI parsing for packages including long interned strings (e.g. licenses for the OpenVPN Connect installer).
- Fixed a panic (and resulting failure to load CVE details) on new installs when OS versions have not been populated yet.
- Fixed CVE-2024-10004 false positive on Fleet-supported platforms (vuln is iOS-only and iOS vuln checking is not supported).

## Bug fixes and improvements
- Added license key validation on `fleetctl preview` if a license key is provided; fixes cases where an invalid license key would cause `fleetctl preview` to hang.
- Increased maximum length for installer URLs specified in GitOps to 4000 characters.
- Stopped older scheduled queries from filling logs with errors.
- Changed script upload endpoint (`POST /api/v1/fleet/scripts`) to automatically switch CRLF line endings to LF.
- Fleshed out server response from `queries` endpoint to include `count` and `meta` pagination information.
- Updated platform filtering on queries page to refer to targeted platforms instead of compatible platforms.
- Included osquery pre-releases in daily UI constant update GitHub Actions job.
- Updated to send alert via SNS when a scheduled "cron" job returns errors.
- SNS topic for job error alerts can be configured separately from the existing monitor alert by adding "cron_job_failure_monitoring" to sns_topic_arns_map, otherwise defaults to the using the same topic.
- Improved validation workflow on SMTP settings page.
- Allowed team policy endpoint (`PATCH /api/latest/fleet/teams/{team_id}/policies/{policy_id}`) to receive explicit `null` as a value for `script_id` or `software_title_id` to unset a script or software installer respectively.
- Aliased EAP versions of JetBrains IDEs to "last release version plus all fixes" (e.g. 2024.3 EAP -> 2024.2.99) to avoid vulnerability false positives.
- Removed server error if no private IP was found by detail_query_network_interface.
- Updated `fleetctl` dependencies that cause warnings.
- Added service annotation field to Helm Chart.
- Updated so that on policy deletion any associated pending software installer or scripts are deleted.
- Added fallback to FileVersion on EXE installers when FileVersion is set but ProductVersion isn't to allow more custom packages to be uploaded.
- Added Mastodon icon and URL to server email templates.
- Improved table text wrapper in UI.
- Added helpful tooltip for the install software setup experience page.
- Added offset to the tooltips on hover of the profile aggregate status indicators.
- Added the `software_title_id` field to the `added_software` activity details.
- Allow maintainers to manage install software or run scripts on policy automations.
- Removed duplicate software records from homebrew casks already reported in the osquery `apps` table to address false positive vulnerabilities due to lack of bundle_identifier.
- Added the `labels_include_any` and `labels_exclude_any` fields to the software installer activities.
- Updated the get host endpoint to include disk encryption stats for a linux host only if the setting is enabled.
- Updated Helm chart to support customization options such as the Google cloud_sql_proxy in the fleet-migration job.
- Updated example windows policies.
- Added a descriptive error when a GitOps file contains script references that are missing paths.
- Removed `invalid UUID` log message when validating Apple MDM UDID.
- Added validation Fleet secrets embedded into scripts and profiles on ingestion.
- Display the correct percentage of hosts online when there are no hosts online.
- Fixed bug when creating a label to preserve the selected team.
- Fixed export to CSV trimming leading zeros by treating those values as strings.
- Fixed reporting of software uninstall results after a host has been locked/unlocked.
- Fixed issue where minio software was not scanned for vulnerabilities correctly because of unexpected trailing characters in the version string.
- Fixed bug on the "Controls" page where incorrect timestamp information was displayed while the "Current versions" table was loading.
- Fixed policy truncation UI bug.
- Fixed cases where showing results of an inherited query viewed inside a team would include results from hosts not on thta team by adding an optional team_id parameter to queris report endpoint (`GET /api/latest/fleet/queries/{query_id}/report`).
- Fixed issue where deleted Apple config profiles were installing on devices because devices were offline when the profile was added.
- Fixed UI bug involving pagination of subsections within the "Controls" page.
- Fixed "Verifying" disk encryption status count and filter for macOS hosts to not include hosts where end-user action is required.
- Fixed a bug in determining sort type of query result columns by deducing that type from the data present in those columns.

## Fleet 4.61.0 (Dec 17, 2024)

## Endpoint operations
Expand Down
2 changes: 0 additions & 2 deletions changes/19930-alert-on-cron-errors

This file was deleted.

5 changes: 0 additions & 5 deletions changes/21855-paginate-queries

This file was deleted.

1 change: 0 additions & 1 deletion changes/22444-gitops-script-missing-path

This file was deleted.

1 change: 0 additions & 1 deletion changes/22448-searchable-query-targets

This file was deleted.

1 change: 0 additions & 1 deletion changes/22523-cve-500

This file was deleted.

1 change: 0 additions & 1 deletion changes/22723-jetbrains-eap-versions

This file was deleted.

1 change: 0 additions & 1 deletion changes/22813-software-scope-labels

This file was deleted.

1 change: 0 additions & 1 deletion changes/22875-uninstall-with-scripts-disabled

This file was deleted.

1 change: 0 additions & 1 deletion changes/22884-license-error-fleetctl

This file was deleted.

1 change: 0 additions & 1 deletion changes/22944-homebrew-casks

This file was deleted.

2 changes: 0 additions & 2 deletions changes/23011-dynamic-column-sort-type

This file was deleted.

5 changes: 0 additions & 5 deletions changes/23238-use-secrets-in-scripts-profiles

This file was deleted.

1 change: 0 additions & 1 deletion changes/23309-mastodon-in-email-templates

This file was deleted.

2 changes: 0 additions & 2 deletions changes/23315-show-sw-install-details-on-my-device

This file was deleted.

1 change: 0 additions & 1 deletion changes/23448-maintainer-policy-automations

This file was deleted.

1 change: 0 additions & 1 deletion changes/23490-null-script-software-on-policies

This file was deleted.

1 change: 0 additions & 1 deletion changes/23541-fileversion-fallback

This file was deleted.

1 change: 0 additions & 1 deletion changes/23557-minio

This file was deleted.

1 change: 0 additions & 1 deletion changes/23579-cve-2024-10004-false-positive

This file was deleted.

1 change: 0 additions & 1 deletion changes/23611-Update-CIS

This file was deleted.

1 change: 0 additions & 1 deletion changes/23783-controls-subnav-pagination

This file was deleted.

1 change: 0 additions & 1 deletion changes/23800-host-online-pctage

This file was deleted.

1 change: 0 additions & 1 deletion changes/23803-leading-zeros-bug

This file was deleted.

1 change: 0 additions & 1 deletion changes/23886-remove-associations-on-policy-delete

This file was deleted.

1 change: 0 additions & 1 deletion changes/24006-host-query-report-team-id

This file was deleted.

1 change: 0 additions & 1 deletion changes/24025-add-label-team-bug

This file was deleted.

1 change: 0 additions & 1 deletion changes/24033-helm-customization-options

This file was deleted.

1 change: 0 additions & 1 deletion changes/24120-sw-title-id

This file was deleted.

1 change: 0 additions & 1 deletion changes/24166-script-line-endings

This file was deleted.

1 change: 0 additions & 1 deletion changes/24244-macos-encryption-verifying-query

This file was deleted.

1 change: 0 additions & 1 deletion changes/24268-update-fleetctl-deps

This file was deleted.

1 change: 0 additions & 1 deletion changes/24286-vulncheck

This file was deleted.

1 change: 0 additions & 1 deletion changes/24315-update-windows-policy-constants

This file was deleted.

1 change: 0 additions & 1 deletion changes/24334-policy-truncation

This file was deleted.

1 change: 0 additions & 1 deletion changes/24385-automatic-install-custom-packages

This file was deleted.

1 change: 0 additions & 1 deletion changes/24386-fleet-legacy-query-pack

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion changes/24459-chart-serrvice-annotation

This file was deleted.

1 change: 0 additions & 1 deletion changes/24533-skip-policy

This file was deleted.

1 change: 0 additions & 1 deletion changes/24534-hide-software-2

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion changes/24538-24542-UI-for-scope-software-via-labels

This file was deleted.

1 change: 0 additions & 1 deletion changes/24549-validate-script-profle-secrets

This file was deleted.

1 change: 0 additions & 1 deletion changes/24663-software-scoped-via-labels-gitops

This file was deleted.

1 change: 0 additions & 1 deletion changes/24725-no-private-ip-found

This file was deleted.

1 change: 0 additions & 1 deletion changes/24792-update-software-installer-activities

This file was deleted.

1 change: 0 additions & 1 deletion changes/24795-add-helpful-tooltip-setup-experience

This file was deleted.

1 change: 0 additions & 1 deletion changes/24899-software-installer-scripts-secrets

This file was deleted.

1 change: 0 additions & 1 deletion changes/24917-installer-url-length

This file was deleted.

1 change: 0 additions & 1 deletion changes/24961-invalid-uuid

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion changes/8903c-table-text-wrapping

This file was deleted.

4 changes: 2 additions & 2 deletions charts/fleet/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ name: fleet
keywords:
- fleet
- osquery
version: v6.3.0
version: v6.3.1
home: https://github.com/fleetdm/fleet
sources:
- https://github.com/fleetdm/fleet.git
appVersion: v4.61.0
appVersion: v4.62.1
dependencies:
- name: mysql
condition: mysql.enabled
Expand Down
2 changes: 1 addition & 1 deletion charts/fleet/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
hostName: fleet.localhost
replicas: 3 # The number of Fleet instances to deploy
imageRepository: fleetdm/fleet
imageTag: v4.61.0 # Version of Fleet to deploy
imageTag: v4.62.1 # Version of Fleet to deploy
podAnnotations: {} # Additional annotations to add to the Fleet pod
serviceAnnotations: {} # Additional annotations to add to the Fleet service
serviceAccountAnnotations: {} # Additional annotations to add to the Fleet service account
Expand Down
2 changes: 2 additions & 0 deletions docs/Contributing/Audit-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -1376,6 +1376,7 @@ Generated when an App Store app is added to Fleet.

This activity contains the following fields:
- "software_title": Name of the App Store app.
- "software_title_id": ID of the added software title.
- "app_store_id": ID of the app on the Apple App Store.
- "platform": Platform of the app (`darwin`, `ios`, or `ipados`).
- "self_service": App installation can be initiated by device owner.
Expand All @@ -1387,6 +1388,7 @@ This activity contains the following fields:
```json
{
"software_title": "Logic Pro",
"software_title_id": 123,
"app_store_id": "1234567",
"platform": "darwin",
"self_service": false,
Expand Down
34 changes: 33 additions & 1 deletion ee/server/service/software_installers.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,10 +438,41 @@ func (svc *Service) UpdateSoftwareInstaller(ctx context.Context, payload *fleet.
payload.SelfService = &existingInstaller.SelfService
}

// Get the hosts that are NOT in label scope currently (before the update happens)
var hostsNotInScope map[uint]struct{}
if dirty["Labels"] {
hostsNotInScope, err = svc.ds.GetExcludedHostIDMapForSoftwareInstaller(ctx, payload.InstallerID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "getting hosts not in scope for installer")
}
}

if err := svc.ds.SaveInstallerUpdates(ctx, payload); err != nil {
return nil, ctxerr.Wrap(ctx, err, "saving installer updates")
}

if dirty["Labels"] {
// Get the hosts that are now IN label scope (after the update)
hostsInScope, err := svc.ds.GetIncludedHostIDMapForSoftwareInstaller(ctx, payload.InstallerID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "getting hosts in scope for installer")
}

var hostsToClear []uint
for id := range hostsInScope {
if _, ok := hostsNotInScope[id]; ok {
// it was not in scope but now it is, so we should clear policy status
hostsToClear = append(hostsToClear, id)
}
}

// We clear the policy status here because otherwise the policy automation machinery
// won't pick this up and the software won't install.
if err := svc.ds.ClearAutoInstallPolicyStatusForHosts(ctx, payload.InstallerID, hostsToClear); err != nil {
return nil, ctxerr.Wrap(ctx, err, "failed to clear auto install policy status for host")
}
}

// if we're updating anything other than self-service, we cancel pending installs/uninstalls,
// and if we're updating the package we reset counts. This is run in its own transaction internally
// for consistency, but independent of the installer update query as the main update should stick
Expand Down Expand Up @@ -484,7 +515,8 @@ func (svc *Service) UpdateSoftwareInstaller(ctx context.Context, payload *fleet.
}

func (svc *Service) validateEmbeddedSecretsOnScript(ctx context.Context, scriptName string, script *string,
argErr *fleet.InvalidArgumentError) *fleet.InvalidArgumentError {
argErr *fleet.InvalidArgumentError,
) *fleet.InvalidArgumentError {
if script != nil {
if errScript := svc.ds.ValidateEmbeddedSecrets(ctx, []string{*script}); errScript != nil {
if argErr != nil {
Expand Down
17 changes: 10 additions & 7 deletions ee/server/service/vpp.go
Original file line number Diff line number Diff line change
Expand Up @@ -363,17 +363,20 @@ func (svc *Service) AddAppStoreApp(ctx context.Context, teamID *uint, appID flee
Name: assetMD.TrackName,
LatestVersion: assetMD.Version,
}
if _, err := svc.ds.InsertVPPAppWithTeam(ctx, app, teamID); err != nil {

addedApp, err := svc.ds.InsertVPPAppWithTeam(ctx, app, teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "writing VPP app to db")
}

act := fleet.ActivityAddedAppStoreApp{
AppStoreID: app.AdamID,
Platform: app.Platform,
TeamName: &teamName,
SoftwareTitle: app.Name,
TeamID: teamID,
SelfService: app.SelfService,
AppStoreID: app.AdamID,
Platform: app.Platform,
TeamName: &teamName,
SoftwareTitle: app.Name,
SoftwareTitleId: addedApp.TitleID,
TeamID: teamID,
SelfService: app.SelfService,
}
if err := svc.NewActivity(ctx, authz.UserFromContext(ctx), act); err != nil {
return ctxerr.Wrap(ctx, err, "create activity for add app store app")
Expand Down
Loading