ID

VAR-202208-1438


CVE

CVE-2022-37060


TITLE

FLIR Systems, Inc.  of  flir ax8  Path traversal vulnerability in firmware

Trust: 0.8

sources: JVNDB: JVNDB-2022-014926

DESCRIPTION

FLIR AX8 thermal sensor cameras version up to and including 1.46.16 is vulnerable to Directory Traversal due to an improper access restriction. An unauthenticated, remote attacker can exploit this by sending a URI that contains directory traversal characters to disclose the contents of files located outside of the server's restricted path. FLIR Systems, Inc. of flir ax8 A path traversal vulnerability exists in firmware.Information may be obtained. The AX8 helps you guard against unplanned outages, service interruptions, and equipment failure.<br/><br/> The FLIR AX series camera/sensor also has built-in support to connect to industrial control equipment such as programmable logic controllers (PLCs), and allows the sharing of analysis and alarm results and simple control using the Ethernet/IP and Modbus TCP field bus protocols. Compact and easy to install, the AX8 provides continuous monitoring of electrical cabinets, process and manufacturing areas, data centers, energy generation and distribution, transportation and mass transit, storage facilities and refrigeration warehouses.The FLIR AX8 thermal sensor camera suffers from an unauthenticated arbitrary file disclosure vulnerability. This can beexploited to disclose the contents of arbitrary files via absolute path.Tested on: GNU/Linux 3.0.35-flir+gfd883a0 (armv7l)lighttpd/1.4.33PHP/5.4.14. # FLIR AX8 vulnerabilities. ### Product description: The FLIR AX8 is a thermal sensor with imaging capabilities, combining thermal and visual cameras that provides continuous temperature monitoring and alarming for critical electrical and mechanical equipment. ### Summary of the 4 vulnerabilities found / What we were able to find: * [CVE-2022-37061] - Unauthenticated OS Command Injection. FLIR AX8 is affected by an unauthenticated remote command injection vulnerability. This can be exploited to inject and execute arbitrary shell commands as the root user through the `id` HTTP POST parameter in `res.php` endpoint. A successful exploit could allow the attacker to execute arbitrary commands on the underlying operating system with the root privileges. * [CVE-2022-37060] - Unauthenticated Directory Traversal. * [CVE-2022-37062] - Improper Access Control. A successful exploit could allow the attacker to extract usernames and hashed passwords. * [CVE-2022-37063] - Reflected cross-site scripting. FLIR AX8 is affected by a reflected cross-site scripting (XSS) vulnerability due to an improper input sanitization. An authenticated, remote attacker can execute arbitrary JavaScript code in the web management interface. A successful exploit could allow the attacker to insert malicious JavaScript code. ### Step by Step Example (How to Reproduce and verify) the vulnerabilities: 1. Unauthenticated Remote Command Injection. The endpoint `/res.php` can be called remotely without user authentication as there is no cookie verification `Cookie: PHPSESSID=ID` to check if the request is legitimate. The second problem is that the POST parameter `id` can be injected to execute any Linux command. In the example below we create a crafted query that displays the contents of the `/etc/shadow` file. The server returns a JSON response containing the contents of the `/etc/shadow` file. This command injection is due because there no sanitization check on the variable `$_POST["id"]`, line 65, and can therefore take advantage of the `shell_exec()` function to execute unexpected arbitrary shell commands. 2. Unauthenticated Directory Traversal. The endpoint `/download.php` can be called remotely without user authentication as there is no cookie verification `Cookie: PHPSESSID=ID` to check if the request is legitimate. The second problem is that the GET parameter `file` can be injected with a relative file paths and download any files in the system. In the example below we create a crafted query that download the contents of the `/etc/passwd` file. The error is due to the fact that there is no sanitization of the `$file_path` variable, line 26, when the `fopen()` function is called, line 39. However a comment in the code, line 24, and the use of the function `pathinfo()`, line 28, suggests that the developer thought about this problem and therefore created the variable `$path_parts` which is sanitized. But for some reasons the developer does not use the sanitizer variable `$path_parts` when the function `fopen()` is used. Probably an oversight. 3. Improper Access Control. The endpoint `/FLIR/db/users.db` can be called remotely without user authentication as there is no cookie verification `Cookie: PHPSESSID=ID` to check if the request is legitimate and let any malicious actor to download the `users.db` SQLite database. 4. Reflected cross-site scripting. In the settings tab, if a file with a filename that contains JavaScript code is selected via the update firmware file input the JavaScript code will be triggered and executed. In our example, we created a file call <img src=x onerror=alert(String.fromCharCode(97,108,101,114,116,40,39,116,101,115,116,39,41,59));>.run ### Recommendations for how to fix the 4 vulnerabilities: * Vulnerability 1: The variable `$_POST["id"]`, line 65 in the file `/FLIR/usr/www/res.php`, must be sanitized using the function `intval()` and will remove any character other than integer value. `escapeshellcmd()` and `escapeshellarg()` must be also used to escapes any characters in a string that might be used to execute arbitrary commands. More info: https://www.php.net/intval https://www.php.net/manual/en/function.escapeshellcmd https://www.php.net/manual/en/function.escapeshellarg * Vulnerability 2: The variable `$file_path`, line 39 in the file `/FLIR/usr/www/download.php`, must be sanitized using the function `pathinfo()` but also use a hard coded directory path, in case you need to manage several directories set a whitelist of all allowed directories and use multiple conditions. More info: https://www.php.net/manual/en/function.pathinfo * Vulnerability 3: Define a whitelist of all directories that a user is allowed to access. This can be added to the Lighttpd server configuration file, in `/etc/lighttpd.conf`. More info: https://www.cyberciti.biz/tips/howto-lighttpd-enable-disable-directory-listing.html * Vulnerability 4: To protect against filename XSS attack you can use a regex that will parse the filename to leave only numbers and letters. More info: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html ### Reference: https://www.flir.com/products/ax8-automation/ ### Security researchers: * [Thomas Knudsen] (https://www.linkedin.com/in/thomasjknudsen) * [Samy Younsi] (https://www.linkedin.com/in/samy-younsi)

Trust: 1.8

sources: NVD: CVE-2022-37060 // JVNDB: JVNDB-2022-014926 // ZSL: ZSL-2018-5493 // PACKETSTORM: 168116

IOT TAXONOMY

category:['camera device']sub_category:camera

Trust: 0.1

sources: OTHER: None

AFFECTED PRODUCTS

vendor:flirmodel:ax8scope:lteversion:1.46.16

Trust: 1.0

vendor:flirmodel:ax8scope:eqversion: -

Trust: 0.8

vendor:flirmodel:ax8scope: - version: -

Trust: 0.8

vendor:flirmodel:ax8scope:lteversion:flir ax8 firmware 1.46.16 and earlier

Trust: 0.8

vendor:flirmodel:systems flir ax8 thermal camerascope:eqversion:1.17.13

Trust: 0.1

vendor:flirmodel:systems flir ax8 thermal camerascope:eqversion:os: neco_v1.8-0-g7ffe5b3

Trust: 0.1

vendor:flirmodel:systems flir ax8 thermal camerascope:eqversion:hardware: flir systems neco board

Trust: 0.1

sources: ZSL: ZSL-2018-5493 // JVNDB: JVNDB-2022-014926 // NVD: CVE-2022-37060

CVSS

SEVERITY

CVSSV2

CVSSV3

nvd@nist.gov: CVE-2022-37060
value: HIGH

Trust: 1.0

NVD: CVE-2022-37060
value: HIGH

Trust: 0.8

CNNVD: CNNVD-202208-3364
value: HIGH

Trust: 0.6

ZSL: ZSL-2018-5493
value: (4/5)

Trust: 0.1

nvd@nist.gov: CVE-2022-37060
baseSeverity: HIGH
baseScore: 7.5
vectorString: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
attackVector: NETWORK
attackComplexity: LOW
privilegesRequired: NONE
userInteraction: NONE
scope: UNCHANGED
confidentialityImpact: HIGH
integrityImpact: NONE
availabilityImpact: NONE
exploitabilityScore: 3.9
impactScore: 3.6
version: 3.1

Trust: 1.0

NVD: CVE-2022-37060
baseSeverity: HIGH
baseScore: 7.5
vectorString: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
attackVector: NETWORK
attackComplexity: LOW
privilegesRequired: NONE
userInteraction: NONE
scope: UNCHANGED
confidentialityImpact: HIGH
integrityImpact: NONE
availabilityImpact: NONE
exploitabilityScore: NONE
impactScore: NONE
version: 3.0

Trust: 0.8

sources: ZSL: ZSL-2018-5493 // JVNDB: JVNDB-2022-014926 // CNNVD: CNNVD-202208-3364 // NVD: CVE-2022-37060

PROBLEMTYPE DATA

problemtype:CWE-22

Trust: 1.0

problemtype:Path traversal (CWE-22) [NVD evaluation ]

Trust: 0.8

sources: JVNDB: JVNDB-2022-014926 // NVD: CVE-2022-37060

THREAT TYPE

remote

Trust: 0.6

sources: CNNVD: CNNVD-202208-3364

TYPE

path traversal

Trust: 0.6

sources: CNNVD: CNNVD-202208-3364

EXPLOIT AVAILABILITY

sources: ZSL: ZSL-2018-5493

EXTERNAL IDS

db:NVDid:CVE-2022-37060

Trust: 3.4

db:ZSLid:ZSL-2018-5493

Trust: 2.5

db:PACKETSTORMid:168116

Trust: 2.5

db:JVNDBid:JVNDB-2022-014926

Trust: 0.8

db:CXSECURITYid:WLB-2022080059

Trust: 0.6

db:CNNVDid:CNNVD-202208-3364

Trust: 0.6

db:PACKETSTORMid:149798

Trust: 0.1

db:EXPLOIT-DBid:45597

Trust: 0.1

db:OTHERid:NONE

Trust: 0.1

sources: ZSL: ZSL-2018-5493 // OTHER: None // JVNDB: JVNDB-2022-014926 // PACKETSTORM: 168116 // CNNVD: CNNVD-202208-3364 // NVD: CVE-2022-37060

REFERENCES

url:http://packetstormsecurity.com/files/168116/flir-ax8-1.46.16-traversal-access-control-command-injection-xss.html

Trust: 3.0

url:https://www.flir.com/products/ax8-automation/

Trust: 2.5

url:https://gist.github.com/nwqda/9e16852ab7827dc62b8e44d6180a6899

Trust: 2.4

url:https://www.zeroscience.mk/en/vulnerabilities/zsl-2018-5493.php

Trust: 2.4

url:https://nvd.nist.gov/vuln/detail/cve-2022-37060

Trust: 0.9

url:https://cxsecurity.com/cveshow/cve-2022-37060/

Trust: 0.6

url:https://cxsecurity.com/issue/wlb-2022080059

Trust: 0.6

url:https://www.flir.com/security/best-practices-for-cybersecurity/

Trust: 0.1

url:https://www.flir.com/globalassets/security/flir-pro-security-cyber-hardening-guide.pdf

Trust: 0.1

url:https://www.flir.com/globalassets/security/cybersecurity-bulletin-10-12-18.pdf

Trust: 0.1

url:https://www.exploit-db.com/exploits/45597/

Trust: 0.1

url:https://packetstormsecurity.com/files/149798

Trust: 0.1

url:https://exchange.xforce.ibmcloud.com/vulnerabilities/151285

Trust: 0.1

url:https://ieeexplore.ieee.org/abstract/document/10769424

Trust: 0.1

url:https://cheatsheetseries.owasp.org/cheatsheets/cross_site_scripting_prevention_cheat_sheet.html

Trust: 0.1

url:https://www.php.net/intval

Trust: 0.1

url:https://www.linkedin.com/in/thomasjknudsen)

Trust: 0.1

url:https://nvd.nist.gov/vuln/detail/cve-2022-37062

Trust: 0.1

url:https://www.php.net/manual/en/function.pathinfo

Trust: 0.1

url:https://www.php.net/manual/en/function.escapeshellcmd

Trust: 0.1

url:https://nvd.nist.gov/vuln/detail/cve-2022-37061

Trust: 0.1

url:https://www.linkedin.com/in/samy-younsi)

Trust: 0.1

url:https://www.cyberciti.biz/tips/howto-lighttpd-enable-disable-directory-listing.html

Trust: 0.1

url:https://www.php.net/manual/en/function.escapeshellarg

Trust: 0.1

url:https://nvd.nist.gov/vuln/detail/cve-2022-37063

Trust: 0.1

sources: ZSL: ZSL-2018-5493 // OTHER: None // JVNDB: JVNDB-2022-014926 // PACKETSTORM: 168116 // CNNVD: CNNVD-202208-3364 // NVD: CVE-2022-37060

CREDITS

Samy Younsi

Trust: 0.6

sources: CNNVD: CNNVD-202208-3364

SOURCES

db:ZSLid:ZSL-2018-5493
db:OTHERid: -
db:JVNDBid:JVNDB-2022-014926
db:PACKETSTORMid:168116
db:CNNVDid:CNNVD-202208-3364
db:NVDid:CVE-2022-37060

LAST UPDATE DATE

2025-01-30T20:43:49.006000+00:00


SOURCES UPDATE DATE

db:ZSLid:ZSL-2018-5493date:2018-10-17T00:00:00
db:JVNDBid:JVNDB-2022-014926date:2023-09-22T08:25:00
db:CNNVDid:CNNVD-202208-3364date:2022-11-08T00:00:00
db:NVDid:CVE-2022-37060date:2022-12-12T21:11:38.377

SOURCES RELEASE DATE

db:ZSLid:ZSL-2018-5493date:2018-10-14T00:00:00
db:JVNDBid:JVNDB-2022-014926date:2023-09-22T00:00:00
db:PACKETSTORMid:168116date:2022-08-19T19:24:22
db:CNNVDid:CNNVD-202208-3364date:2022-08-18T00:00:00
db:NVDid:CVE-2022-37060date:2022-08-18T17:15:08.033