Audit All Outdated Firefox Installations in Your Network
Mozilla released its new versions, Firefox 116, Firefox 102.14, and Firefox ESR 115.1esr with additional functionality and security fixes on the 1st of August, 2023. These releases contain multiple changes.
The sidebar switcher in Firefox 116 offers users convenient access to the Bookmarks, History, and Synced Tabs panels. Users can effortlessly switch between these panels, relocate the sidebar within the browser window, or simply close it. Notably, keyboard users can now perform all these actions smoothly, both with or without assistive technology, without the necessity of memorizing complex keyboard shortcuts for accessing these panels.
Other new features in Firefox 116 include:
When an update is available in English locales, users will now have access to the release notes in the update notification prompt in the form of a “Learn More” link.
It is now possible to copy any file from your operating system and paste it into Firefox.
You asked, and we listened! The volume slider is now available in Picture-in-Picture.
We added the possibility to edit existing text annotations.
The new releases also come with the usual security fixes, 14 in Firefox 116 and 9 in Firefox ESR 115.1 and Firefox ESR 102.13. 6 issues received a high severity rating.
You can use the audit report below to find out which machines in your network still need to update their Mozilla Firefox version. It will show you exactly which machines are not running the latest version of Firefox or Firefox ESR yet. Go ahead and start running your Firefox audit.
Select Top 100000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tsysAssetTypes.AssetTypename As AssetType,
tblAssets.Username,
tblAssets.Userdomain,
Coalesce(tsysOS.Image, tsysAssetTypes.AssetTypeIcon10) As icon,
tblAssets.IPAddress,
tblSoftwareUni.softwareName As Software,
tblSoftware.softwareVersion As Version,
tblSoftwareUni.SoftwarePublisher As Publisher,
tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer,
tblAssetCustom.Model,
Coalesce(tsysOS.OSname, tblSccmAsset.OsCaption,
tblSccmAsset.OperatingSystemNameandVersion) As OS,
tblAssets.Version As OSVersion,
Case
When tblErrors.ErrorText Is Not Null Or
tblErrors.ErrorText != '' Then
'Scanning Error: ' + tsysasseterrortypes.ErrorMsg
Else ''
End As ScanningErrors,
tblAssets.Lastseen,
tblAssets.Lasttried
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join tsysIPLocations On tsysIPLocations.LocationID =
tblAssets.LocationID
Inner Join tblState On tblState.State = tblAssetCustom.State
Inner Join tblSoftware On tblAssets.AssetID = tblSoftware.AssetID
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID = tblSoftware.softID
Left Outer Join tsysOS On tsysOS.OScode = tblAssets.OScode
Left Outer Join tblSccmAsset On tblAssets.AssetID = tblSccmAsset.AssetId
Left Join (Select Distinct Top 1000000 tblErrors.AssetID As ID,
Max(tblErrors.Teller) As ErrorID
From tblErrors
Group By tblErrors.AssetID) As ScanningError On tblAssets.AssetID =
ScanningError.ID
Left Join tblErrors On ScanningError.ErrorID = tblErrors.Teller
Left Join tsysasseterrortypes On tsysasseterrortypes.Errortype =
tblErrors.ErrorType
Where tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.SoftwarePublisher Like '%mozilla%' And tblState.Statename =
'Active' And ((Len(tblSoftware.softwareVersion) -
Len(Replace(tblSoftware.softwareVersion, '.', '')) = 1 And
tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) < 116)
Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 1 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) = 116 And
try_cast(ParseName(tblSoftware.softwareVersion, 1) As bigint) < 0) Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 2 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) < 116)
Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 2 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 116 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) < 0) Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 2 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 116 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) = 0 And
try_cast(ParseName(tblSoftware.softwareVersion, 1) As bigint) < 0) Or
(tblSoftwareUni.softwareName Like '%firefox%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 102 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) < 14) Or
(tblSoftwareUni.softwareName Like '%firefox%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 102 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) = 14 And
try_cast(ParseName(tblSoftware.softwareVersion, 1) As bigint) < 0) or
(tblSoftwareUni.softwareName Like '%firefox%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 115)
Or (tblSoftwareUni.softwareName Like '%firefox%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 115 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) < 1) Or
(tblSoftwareUni.softwareName Like '%firefox%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 115 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) = 1 And
try_cast(ParseName(tblSoftware.softwareVersion, 1) As bigint) < 0) Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 3 And tblSoftwareUni.softwareName Like '%firefox%' And
try_cast(ParseName(tblSoftware.softwareVersion, 4) As bigint) < 115)
Or (Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 3 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 4) As bigint) = 115 And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) < 1) Or
(Len(tblSoftware.softwareVersion) - Len(Replace(tblSoftware.softwareVersion,
'.', '')) = 3 And tblSoftwareUni.softwareName Like '%firefox%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
try_cast(ParseName(tblSoftware.softwareVersion, 4) As bigint) = 115 And
try_cast(ParseName(tblSoftware.softwareVersion, 3) As bigint) = 1 And
try_cast(ParseName(tblSoftware.softwareVersion, 2) As bigint) < 0))
Union
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tsysAssetTypes.AssetTypename As AssetType,
tblAssets.Username,
tblAssets.Userdomain,
tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.IPAddress,
Case
When subquery1.Software Like '%firefox%' And
((try_cast(ParseName(tblMacApplications.Version, 3) As bigint) = 102 And
try_cast(ParseName(tblMacApplications.Version, 2) As bigint) < 14) Or
(try_cast(ParseName(tblMacApplications.Version, 3) As bigint) < 102) or
(try_cast(ParseName(tblMacApplications.Version, 3) As bigint) = 115 And
try_cast(ParseName(tblMacApplications.Version, 2) As bigint) < 1) Or
(try_cast(ParseName(tblMacApplications.Version, 3) As bigint) < 115))
Then 'firefox (Possible ESR)'
Else subquery1.Software
End As Software,
subquery1.Version,
subquery1.Publisher,
tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer,
tblAssetCustom.Model,
tblMacOSInfo.SystemVersion As OS,
tblAssets.Version As OSVersion,
Case
When tblErrors.ErrorText Is Not Null Or
tblErrors.ErrorText != '' Then
'Scanning Error: ' + tsysasseterrortypes.ErrorMsg
Else ''
End As ScanningErrors,
tblAssets.Lastseen As [Last successful scan],
tblAssets.Lasttried As [Last scan attempt]
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join tsysIPLocations On tsysIPLocations.LocationID =
tblAssets.LocationID
Inner Join tblState On tblState.State = tblAssetCustom.State
Left Join (Select tblSoftwareUni.softwareName As Software,
tblSoftwareUni.SoftwarePublisher As Publisher,
tblMacApplications.AssetID,
Case
When tblMacApplications.Version Like '%R%' Then
Left(tblMacApplications.Version, CharIndex('R',
tblMacApplications.Version) - 1)
Else tblMacApplications.Version
End As Version
From tblMacApplications
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID =
tblMacApplications.softid
Where tblSoftwareUni.softwareName Like '%firefox%') As subquery1 On
subquery1.AssetID = tblAssets.AssetID
Inner Join tblMacApplications On
tblAssets.AssetID = tblMacApplications.AssetID
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID = tblMacApplications.softid
Inner Join tblMacOSInfo On tblMacOSInfo.AssetID = tblAssets.AssetID
Left Join (Select Distinct Top 1000000 tblErrors.AssetID As ID,
Max(tblErrors.Teller) As ErrorID
From tblErrors
Group By tblErrors.AssetID) As ScanningError On tblAssets.AssetID =
ScanningError.ID
Left Join tblErrors On ScanningError.ErrorID = tblErrors.Teller
Left Join tsysasseterrortypes On tsysasseterrortypes.Errortype =
tblErrors.ErrorType
Where tblSoftwareUni.softwareName Like '%firefox%' And tblState.Statename =
'Active' And ((try_cast(ParseName(subquery1.Version, 3) As bigint) < 116) Or
(try_cast(ParseName(subquery1.Version, 3) As bigint) = 115 And
try_cast(ParseName(subquery1.Version, 2) As bigint) < 1) Or
(try_cast(ParseName(subquery1.Version, 3) As bigint) = 115 And
try_cast(ParseName(subquery1.Version, 2) As bigint) = 1 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0)
Or
(try_cast(ParseName(subquery1.Version, 3) As bigint) = 102 And
try_cast(ParseName(subquery1.Version, 2) As bigint) < 14) Or
(try_cast(ParseName(subquery1.Version, 3) As bigint) = 102 And
try_cast(ParseName(subquery1.Version, 2) As bigint) = 14 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0))
Union
Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tsysAssetTypes.AssetTypename As AssetType,
tblLinuxUser.UserName,
tblAssets.Userdomain,
tsysAssetTypes.AssetTypeIcon10 As icon,
tblAssets.IPAddress,
subquery1.Software,
subquery1.Version,
subquery1.Publisher,
tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer,
tblAssetCustom.Model,
tblLinuxSystem.OSRelease As OS,
tblAssets.Version As OSVersion,
Case
When tblErrors.ErrorText Is Not Null Or
tblErrors.ErrorText != '' Then
'Scanning Error: ' + tsysasseterrortypes.ErrorMsg
Else ''
End As ScanningErrors,
tblAssets.Lastseen As [Last successful scan],
tblAssets.Lasttried As [Last scan attempt]
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join tsysIPLocations On tsysIPLocations.LocationID =
tblAssets.LocationID
Inner Join tblState On tblState.State = tblAssetCustom.State
Inner Join tblLinuxSystem On tblAssets.AssetID = tblLinuxSystem.AssetID
Inner Join tblLinuxUser On tblAssets.AssetID = tblLinuxUser.AssetID
Inner Join tblLinuxUserLogon On tblLinuxUserLogon.Id = tblLinuxUser.id
Inner Join (Select tblLinuxUser.AssetId,
Max(tblLinuxUserLogon.LogonTime) As MaxLogontime
From tblLinuxUser
Inner Join tblLinuxUserLogon On tblLinuxUserLogon.Id = tblLinuxUser.id
Group By tblLinuxUser.assetid) As subquery2 On subquery2.MaxLogontime =
tblLinuxUserLogon.LogonTime
Inner Join (Select tblSoftwareUni.softwareName As Software,
tblSoftwareUni.SoftwarePublisher As Publisher,
tblLinuxSoftware.LastChanged,
tblLinuxSoftware.assetid,
Case
When tblLinuxSystem.OSRelease Like '%Ubuntu%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
tblLinuxSoftware.Version Like '%+%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('+',
tblLinuxSoftware.Version) - 1)
When tblLinuxSystem.OSRelease Like '%Ubuntu%' And
tblSoftwareUni.softwareName Like '%esr%' And
tblLinuxSoftware.Version Like '%+%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('+',
tblLinuxSoftware.Version) - 4)
When tblLinuxSystem.OSRelease Like '%manjaro%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
tblLinuxSoftware.Version Like '%-%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('-',
tblLinuxSoftware.Version) - 1)
When tblLinuxSystem.OSRelease Like '%manjaro%' And
tblSoftwareUni.softwareName Like '%esr%' And
tblLinuxSoftware.Version Like '%-%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('-',
tblLinuxSoftware.Version) - 1)
When tblLinuxSystem.OSRelease Like '%manjaro%' And
tblSoftwareUni.softwareName Like '%esr%' And
tblLinuxSoftware.Version Like '%esr-%' And
tblLinuxSoftware.Version Like '%.%.%[^0-9]%' Then
Left(tblLinuxSoftware.Version, CharIndex('-',
tblLinuxSoftware.Version) - 4)
When tblLinuxSystem.OSRelease Like '%debian%' And
tblSoftwareUni.softwareName Not Like '%esr%' And
tblLinuxSoftware.Version Like '%-%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('-',
tblLinuxSoftware.Version) - 1)
When tblLinuxSystem.OSRelease Like '%debian%' And
tblSoftwareUni.softwareName Like '%esr%' And
tblLinuxSoftware.Version Like '%-%' And tblLinuxSoftware.Version Like
'%.%.%[^0-9]%' Then Left(tblLinuxSoftware.Version, CharIndex('-',
tblLinuxSoftware.Version) - 4)
Else tblLinuxSoftware.Version
End As Version
From tblLinuxSoftware
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID =
tblLinuxSoftware.SoftwareUniID
Inner Join tblLinuxSystem On tblLinuxSoftware.AssetID =
tblLinuxSystem.AssetID
Where tblSoftwareUni.softwareName In ('firefox', 'MozillaFirefox',
'firefox-esr')) As subquery1 On subquery1.assetid = tblAssets.assetid
Left Join (Select Distinct Top 1000000 tblErrors.AssetID As ID,
Max(tblErrors.Teller) As ErrorID
From tblErrors
Group By tblErrors.AssetID) As ScanningError On tblAssets.AssetID =
ScanningError.ID
Left Join tblErrors On ScanningError.ErrorID = tblErrors.Teller
Left Join tsysasseterrortypes On tsysasseterrortypes.Errortype =
tblErrors.ErrorType
Where subquery1.Software In ('firefox', 'MozillaFirefox', 'firefox-esr') And
tblState.Statename = 'Active' And ((Len(subquery1.Version) -
Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Not Like
'%esr%' And try_cast(ParseName(subquery1.Version, 3) As bigint) < 116) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Not Like
'%esr%' And try_cast(ParseName(subquery1.Version, 3) As bigint) = 116 And
try_cast(ParseName(subquery1.Version, 2) As bigint) < 0) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Not Like
'%esr%' And try_cast(ParseName(subquery1.Version, 3) As bigint) = 116 And
try_cast(ParseName(subquery1.Version, 2) As bigint) = 0 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Not Like
'%esr%' And try_cast(ParseName(subquery1.Version, 2) As bigint) < 116) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Not Like
'%esr%' And try_cast(ParseName(subquery1.Version, 2) As bigint) = 116 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) < 102) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) = 102 And
try_cast(ParseName(subquery1.Version, 2) As bigint) < 14) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) = 102 And
try_cast(ParseName(subquery1.Version, 2) As bigint) = 14 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 2) As bigint) < 102) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 2) As bigint) = 102 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 14) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) = 115) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) = 115 And
try_cast(ParseName(subquery1.Version, 2) As bigint) < 1) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 2 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 3) As bigint) = 115 And
try_cast(ParseName(subquery1.Version, 2) As bigint) = 1 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 0) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 2) As bigint) = 115) Or
(Len(subquery1.Version) - Len(Replace(subquery1.Version, '.', '')) = 1 And
subquery1.Software Like '%firefox%' And subquery1.Software Like '%esr%'
And try_cast(ParseName(subquery1.Version, 2) As bigint) = 115 And
try_cast(ParseName(subquery1.Version, 1) As bigint) < 1))
Order By Domain,
AssetName,
Software