CVE-2026-44881
Portainer: Arbitrary File Read via Git Symlink Injection in Stack Auto-Update
Description
Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer supports deploying stacks from Git repositories. When a Git-backed stack is created or updated, Portainer clones the repository using go-git v5, which translates Git blob entries with mode 0o120000 (symlink) into real OS symlinks on the host filesystem via os.Symlink. The only entry blocked from becoming a symlink is .gitmodules; every other path is created as a symlink without validation. Portainer's GET /api/stacks/{id}/file endpoint then reads the stack entry point with os.ReadFile, which follows OS symlinks transparently. A repository containing docker-compose.yml as a symlink to an arbitrary filesystem path causes the symlink target's contents to be returned verbatim in the HTTP response. Any authenticated user with rights to create or update a Git-backed stack — the default configuration in Portainer CE — can read arbitrary files accessible to the Portainer process. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0.
INFO
Published Date :
May 28, 2026, 10:16 p.m.
Last Modified :
July 21, 2026, 10:10 a.m.
Remotely Exploit :
Yes !
Source :
[email protected]
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 3.1 | CRITICAL | [email protected] | ||||
| CVSS 4.0 | HIGH | [email protected] |
Solution
- Update Portainer CE to version 2.33.8 or later.
- Apply security patches for affected Portainer CE versions.
- Review Git repository configurations for malicious symlinks.
Public PoC/Exploit Available at Github
CVE-2026-44881 has a 2 public
PoC/Exploit available at Github.
Go to the Public Exploits tab to see the list.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-44881.
| URL | Resource |
|---|---|
| https://github.com/portainer/portainer/security/advisories/GHSA-rpgq-m5fp-32wr | Exploit Third Party Advisory |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-44881 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-44881
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
None
Shell
📡 PoC auto collect from GitHub. ⚠️ Be careful Malware.
security cve exploit poc vulnerability
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-44881 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-44881 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Jul. 21, 2026
Action Type Old Value New Value Added Translation Title: Portainer Community Edition, Description: Portainer Community Edition es una plataforma ligera de entrega de servicios para aplicaciones en contenedores que puede utilizarse para gestionar entornos Docker, Swarm, Kubernetes y ACI. Desde la 2.33.0 hasta antes de la 2.33.8, 2.39.2 y 2.41.0, Portainer soporta el despliegue de stacks desde repositorios Git. Cuando se crea o actualiza un stack respaldado por Git, Portainer clona el repositorio usando go-git v5, que traduce las entradas blob de Git con modo 0o120000 (symlink) en symlinks reales del sistema operativo en el sistema de archivos del host a través de os.Symlink. La única entrada bloqueada para convertirse en un symlink es .gitmodules; cualquier otra ruta se crea como un symlink sin validación. El endpoint GET /API/stacks/{id}/file de Portainer luego lee el punto de entrada del stack con os.ReadFile, que sigue los symlinks del sistema operativo de forma transparente. Un repositorio que contiene docker-compose.yml como un symlink a una ruta de sistema de archivos arbitraria hace que el contenido del destino del symlink se devuelva textualmente en la respuesta HTTP. Cualquier usuario autenticado con derechos para crear o actualizar un stack respaldado por Git — la configuración predeterminada en Portainer CE — puede leer archivos arbitrarios accesibles al proceso de Portainer. Esta vulnerabilidad está corregida en 2.33.8, 2.39.2 y 2.41.0. -
CVE Modified by [email protected]
Jun. 17, 2026
Action Type Old Value New Value Added Affected [{'vendor': 'portainer', 'product': 'portainer', 'versions': [{'status': 'affected', 'version': '>= 2.33.0, < 2.33.8'}, {'status': 'affected', 'version': '>= 2.39.0, < 2.39.2'}, {'status': 'affected', 'version': '>= 2.40.0, < 2.41.0'}]}] -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 17, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-44881', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'no'}, {'technicalImpact': 'partial'}], 'version': '2.0.3', 'timestamp': '2026-05-29T14:47:30.082612Z'} -
Initial Analysis by [email protected]
Jun. 01, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H Added CPE Configuration OR *cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:* versions from (including) 2.33.0 up to (excluding) 2.33.8 *cpe:2.3:a:portainer:portainer:*:*:*:*:community:*:*:* versions from (including) 2.34.0 up to (excluding) 2.39.2 *cpe:2.3:a:portainer:portainer:2.40.0:*:*:*:community:*:*:* Added Reference Type GitHub, Inc.: https://github.com/portainer/portainer/security/advisories/GHSA-rpgq-m5fp-32wr Types: Exploit, Third Party Advisory -
New CVE Received by [email protected]
May. 28, 2026
Action Type Old Value New Value Added Description Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. From 2.33.0 to before 2.33.8, 2.39.2, and 2.41.0, Portainer supports deploying stacks from Git repositories. When a Git-backed stack is created or updated, Portainer clones the repository using go-git v5, which translates Git blob entries with mode 0o120000 (symlink) into real OS symlinks on the host filesystem via os.Symlink. The only entry blocked from becoming a symlink is .gitmodules; every other path is created as a symlink without validation. Portainer's GET /api/stacks/{id}/file endpoint then reads the stack entry point with os.ReadFile, which follows OS symlinks transparently. A repository containing docker-compose.yml as a symlink to an arbitrary filesystem path causes the symlink target's contents to be returned verbatim in the HTTP response. Any authenticated user with rights to create or update a Git-backed stack — the default configuration in Portainer CE — can read arbitrary files accessible to the Portainer process. This vulnerability is fixed in 2.33.8, 2.39.2, and 2.41.0. Added CVSS V4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X Added CWE CWE-200 Added CWE CWE-59 Added Reference https://github.com/portainer/portainer/security/advisories/GHSA-rpgq-m5fp-32wr