CVE-2023-29539
High · 8.8CVSS
8.8
EPSS
0.7%
Published
Jun 2, 2023
CISA due date
—
Cloudanix analysis
A browser bug could let attackers trick people into downloading and running harmful software that appears to have a safe name.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Other
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Improper handling of NULL characters in the filename directive of the Content-Disposition header causes filename truncation, enabling reflected file download attacks that can deliver malware under a misleading name.
Why it matters to the business
Users across the organization may be tricked into executing malware, leading to endpoint compromise, data loss, or further lateral movement with minimal warning from download prompts.
How an attack unfolds
An attacker hosts or reflects content with a crafted Content-Disposition header containing a filename such as "payload.exe%00.pdf"; the browser truncates at the NULL byte and presents only "payload.exe" to the user for download and execution.
How to fix it
Upgrade Mozilla Firefox to version 112 or later, Firefox ESR to 102.10 or later, Firefox for Android to 112 or later, Focus for Android to 112 or later, and Thunderbird to 102.10 or later. Apply updates via the product's built-in updater or package manager as soon as possible.
How to confirm the fix worked
Verify installed versions against the fixed releases listed above; test header handling with a synthetic Content-Disposition response containing a NULL byte and confirm the full filename is preserved without truncation.
Typical attack path
- Attacker crafts a malicious link, email, or web response embedding a Content-Disposition header with NULL byte in the filename
- Victim is lured to the resource via phishing or compromised site
- Browser processes the header and truncates the filename at the NULL character
- Victim is prompted to save or open a file with a benign-looking extension
- Victim executes the downloaded content, installing malware
How to detect it
Review browser download logs and proxy records for files whose original Content-Disposition filenames contain embedded NULL characters or unexpected truncation; correlate with subsequent execution of renamed executables.
What your security team should do
- Prioritize patching all affected Mozilla products within the next 48 hours given the high CVSS and potential for malware delivery
- Enable automatic updates for Firefox, ESR, Thunderbird, and Android variants across the fleet
- Block or monitor outbound downloads of executable files from untrusted domains
- Educate users on verifying file extensions before execution
The record
When handling the filename directive in the Content-Disposition header, the filename would be truncated if the filename contained a NULL character. This could have led to reflected file download attacks potentially tricking users to install malware. This vulnerability affects Firefox < 112, Focus for Android < 112, Firefox ESR < 102.10, Firefox for Android < 112, and Thunderbird < 102.10.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | firefox | 0 | 102.10.0-1.el8_7.alma |
| AlmaLinux:8 | thunderbird | 0 | 102.10.0-2.el8_7.alma |
| AlmaLinux:9 | firefox | 0 | 102.10.0-1.el9_1.alma |
| AlmaLinux:9 | firefox-x11 | 0 | 102.10.0-1.el9_1.alma |
| AlmaLinux:9 | thunderbird | 0 | 102.10.0-2.el9_1.alma |
| Debian:10 | firefox-esr | 0 | 102.10.0esr-1~deb10u1 |
| Debian:10 | thunderbird | 0 | 1:102.10.0-1~deb10u1 |
| Debian:11 | firefox-esr | 0 | 102.10.0esr-1~deb11u1 |
| Debian:11 | thunderbird | 0 | 1:102.10.0-1~deb11u1 |
| Debian:12 | firefox-esr | 0 | 102.10.0esr-1 |
| Debian:12 | thunderbird | 0 | 1:102.10.0-1 |
| Debian:13 | firefox-esr | 0 | 102.10.0esr-1 |
| Debian:13 | thunderbird | 0 | 1:102.10.0-1 |
| Mageia:8 | firefox | 0 | 102.10.0-1.mga8 |
| Mageia:8 | firefox-l10n | 0 | 102.10.0-1.mga8 |
| Mageia:8 | libwebp | 0 | 1.1.0-2.1.mga8 |
| Mageia:8 | thunderbird | 0 | 102.10.0-1.mga8 |
| Mageia:8 | thunderbird-l10n | 0 | 102.10.0-1.mga8 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:102.10.0-1.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:102.10.0-2.el7_9 |
| Red Hat:enterprise_linux:8::appstream | firefox | 0 | 0:102.10.0-1.el8_7 |
| Red Hat:enterprise_linux:8::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_7 |
| Red Hat:enterprise_linux:8::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_7 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0 | 0:102.10.0-2.el8_7 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_7 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_7 |
| Red Hat:enterprise_linux:9::appstream | firefox | 0 | 0:102.10.0-1.el9_1 |
| Red Hat:enterprise_linux:9::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el9_1 |
| Red Hat:enterprise_linux:9::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el9_1 |
| Red Hat:enterprise_linux:9::appstream | firefox-x11 | 0 | 0:102.10.0-1.el9_1 |
| Red Hat:enterprise_linux:9::appstream | thunderbird | 0 | 0:102.10.0-2.el9_1 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el9_1 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el9_1 |
| Red Hat:rhel_aus:8.2::appstream | firefox | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_aus:8.2::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.1::appstream | firefox | 0 | 0:102.10.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird | 0 | 0:102.10.0-2.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_1 |
| Red Hat:rhel_e4s:8.2::appstream | firefox | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_e4s:8.2::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_eus:8.4::appstream | firefox | 0 | 0:102.10.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird | 0 | 0:102.10.0-2.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_4 |
| Red Hat:rhel_eus:8.6::appstream | firefox | 0 | 0:102.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird | 0 | 0:102.10.0-2.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_6 |
| Red Hat:rhel_eus:9.0::appstream | firefox | 0 | 0:102.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird | 0 | 0:102.10.0-2.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el9_0 |
| Red Hat:rhel_tus:8.2::appstream | firefox | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debuginfo | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | firefox-debugsource | 0 | 0:102.10.0-1.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debuginfo | 0 | 0:102.10.0-2.el8_2 |
| Red Hat:rhel_tus:8.2::appstream | thunderbird-debugsource | 0 | 0:102.10.0-2.el8_2 |
| Rocky Linux:8 | thunderbird | 0 | 0:102.10.0-2.el8_7 |
| Rocky Linux:9 | thunderbird | 0 | 0:102.10.0-2.el9_1 |
| SUSE:Enterprise Storage 7 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Enterprise Storage 7.1 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | MozillaFirefox | 0 | 102.10.0-150000.150.82.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | MozillaThunderbird | 0 | 102.10.1-150200.8.113.2 |
| SUSE:Linux Enterprise Real Time 15 SP3 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server 12 SP4-ESPOS | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server 12 SP5 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | MozillaFirefox | 0 | 102.10.0-150000.150.82.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | MozillaFirefox | 0 | 102.10.0-150000.150.82.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP4 | MozillaThunderbird | 0 | 102.10.1-150200.8.113.2 |
| SUSE:OpenStack Cloud 9 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| SUSE:OpenStack Cloud Crowbar 9 | MozillaFirefox | 0 | 102.10.0-112.156.1 |
| Ubuntu:18.04:LTS | firefox | 0 | 112.0+build2-0ubuntu0.18.04.1 |
| Ubuntu:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:18.04:LTS | thunderbird | 0 | 1:102.10.0+build2-0ubuntu0.18.04.1 |
| Ubuntu:20.04:LTS | firefox | 0 | 112.0+build2-0ubuntu0.20.04.1 |
| Ubuntu:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:20.04:LTS | thunderbird | 0 | 1:102.10.0+build2-0ubuntu0.20.04.1 |
| Ubuntu:22.04:LTS | mozjs78 | 0 | No fix |
| Ubuntu:22.04:LTS | mozjs91 | 0 | No fix |
| Ubuntu:22.04:LTS | thunderbird | 0 | 1:102.10.0+build2-0ubuntu0.22.04.1 |
| Ubuntu:Pro:18.04:LTS | mozjs38 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | mozjs52 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | mozjs68 | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | mozjs78 | 0 | No fix |
| openSUSE:Leap 15.4 | MozillaFirefox | 0 | 102.10.0-150200.152.84.1 |
| openSUSE:Leap 15.4 | MozillaThunderbird | 0 | 102.10.1-150200.8.113.2 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 112.0.1-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 0 | 102.10.0-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2025-14331 Same-origin policy bypass in the Request Handling component. Also affects firefox
- CVE-2025-14325 JIT miscompilation in the JavaScript Engine: JIT component. Also affects firefox
- CVE-2025-14330 JIT miscompilation in the JavaScript Engine: JIT component. Also affects firefox
- CVE-2025-14333 Memory safety bugs present in Firefox ESR 140.5, Thunderbird ESR 140.5, Firefox 145 and… Also affects firefox
- CVE-2025-14328 Privilege escalation in the Netmonitor component. Also affects firefox
- CVE-2025-14329 Privilege escalation in the Netmonitor component. Also affects firefox
- CVE-2025-14323 Privilege escalation in the DOM: Notifications component. Also affects firefox
- CVE-2025-14321 Use-after-free in the WebRTC: Signaling component. Also affects firefox