Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article addresses frequent questions about firmware analysis.
Firmware analysis is a tool that analyzes firmware images and provides an understanding of security vulnerabilities in the firmware images.
What types of firmware images does firmware analysis support?
Firmware analysis supports unencrypted images that contain file systems with embedded Linux operating systems. Firmware analysis supports the following file system formats:
- Android sparse image
- bzip2 compressed data
- CPIO ASCII archive, with CRC
- CPIO ASCII archive, no CRC
- CramFS filesystem
- Flattened device tree blob (DTB)
- EFI GUID partition table
- EXT file system
- POSIX tarball archive (GNU)
- GPG signed data
- gzip compressed data
- ISO-9660 primary volume
- JFFS2 filesystem, big endian
- JFFS2 filesystem, little endian
- LZ4 compressed data
- LZMA compressed data
- LZOP compressed file
- DOS master boot record
- RomFS filesystem
- SquashFSv4 file system, little endian
- POSIX tarball archive
- UBI erase count header
- UBI file system superblock node
- UEFI file system
- xz compressed data
- YAFFS filesystem, big endian
- YAFFS filesystem, little endian
- ZStandard compressed data
- Zip archive
What SBOM components does firmware analysis detect?
Note
If firmware analysis detects a component but is unable to determine the version of that component, it may report the version as 0.0.0. No CVEs will be reported for that particular component.
| Component | Component | Component | Component |
|---|---|---|---|
| apache | harfbuzz | miniupnpd | redis |
| apparmor | hdparm | mit_kerberos | rngd |
| asterisk | heimdal | mosquitto | rngtest |
| atftp | hostapd | msmtp | rp_pppoe |
| avahi_daemon | i2c-tools | mstpd | samba |
| avahi-autoipd | iperf3 | mtd-utils | setserial |
| axios | iproute2 | nano | sqlite |
| backbonejs | ipset | ncurses | ssmtp |
| bash | iptables | neon | strace |
| bftpd | jansson | netatalk | strongswan |
| binutils | jquery | netkit_telnetd | stunnel |
| bird | json-c | netsnmp | sudo |
| bluetoothd | libarchive | nettools | tcpdump |
| boa | libcap | nginx | uclibc |
| bridge-utils | libcurl | nss | underscorejs |
| busybox | dhcpd | openldap | usbutils |
| bzip2 | dhcpcd | openssh | util_linux |
| cairo | dmidecode | openssl | vim |
| cifs-utils | dnsmasq | openvpn | vsftpd |
| chrony | dpkg | openvswitch | vuejs |
| codesys | dropbear | p7zip | wget |
| conntrack-tools | e2fsprogs | pango | wireless-tools |
| coreutils | ebtables | pcre | wolfssl |
| cryptsetup | eeprog | pcre2 | wpa_supplicant |
| cups | element | perl | xinetd |
| davfs2 | ethtool | php | xl2tpd |
| exfat | extJS | polarssl | xz-utils |
| ffmpeg | file | portmap | zebra |
| fribidi | gdbserver | pppd | zeptojs |
| gdkpixbuf | glibc | procps | zip |
| glibc | gmp | procps-ng | zipcloak |
| gnutls | gpg | protobuf-c | zipnote |
| gtk | libevent | python | zlib |
| libarchive | libexpat | radvd | |
| libcap | libgcrypt | readline | |
| libcurl | libidn | redis | |
| libevent | libjpeg-turbo | rngd | |
| libexpat | liblzma | rngtest | |
| libgcrypt | libmicrohttpd | samba | |
| libidn | libpcap | setserial | |
| libjpeg-turbo | libpng | sqlite | |
| liblzma | libsoup | ssmtp | |
| libmicrohttpd | libvorbis | strace | |
| libpcap | libxml2 | strongswan | |
| libpng | lighttpd | stunnel | |
| libsoup | lodash | sudo |
Where are the firmware analysis Azure CLI/PowerShell docs?
You can find the documentation for our Azure CLI commands here and the documentation for our Azure PowerShell commands here.
You can also find the Quickstart for our Azure CLI here and the Quickstart for our Azure PowerShell here. To run a Python script using the SDK to upload and analyze firmware images, visit Quickstart: Upload firmware using Python.
Is UEFI (Unified Extensible Firmware Interface) firmware analysis supported?
Yes. UEFI firmware analysis is supported with a mix of Generally Available (GA) and Preview capabilities.
What is generally available for UEFI firmware analysis?
Firmware analysis provides GA support for detecting and analyzing cryptographic material embedded in UEFI firmware, including:
- Cryptographic certificates
- Cryptographic keys
These capabilities are considered stable and fully supported for UEFI firmware.
What UEFI analysis capabilities are in preview?
The following UEFI analysis capabilities are currently provided in Preview and might have limited coverage:
- SBOM and weakness signals (limited OpenSSL detection and CVE association)
- Binary hardening attributes (detection of NX / DEP are supported)
- Extractor path enhancements
Preview results should be interpreted as security signals, not guarantees of vulnerability or protection.
For detailed explanations of UEFI firmware analysis capabilities, limitations, and how to interpret results, see Understanding UEFI firmware analysis capabilities and limitations.
Why don't I see any results for unsafe function calls?
An empty result doesn't mean the firmware has no unsafe function calls. You might not see results when:
- The firmware image doesn't contain supported ELF user-space executables.
- The extracted executables use an unsupported processor architecture.
- A static or stripped binary doesn't retain enough information to identify function references.
- The extracted file is a Linux kernel module (
.ko), which isn't included in this analysis. - The firmware image was analyzed before unsafe function calls analysis became available.
- Extraction or analysis didn't complete successfully.
Upload an older firmware image again to receive current analysis. For supported architectures, binary requirements, and guidance on interpreting results, see Understand unsafe function call data.