← Back to CVE Explorer

CVE-2026-76032

Full vulnerability record from the local CVENow database.

Description

Pydio Cells 5.0.0 through 5.0.2 returns share-link details to any authenticated user. The REST handler for GET /a/share/link/{Uuid} in idm/share/rest/handler.go reads the workspace UUID from the path, calls LinkById, and writes the result with no authorization step, whereas the sibling handler for GET /a/share/cell/{Uuid} loads the workspace and requires MatchPolicies with ResourcePolicyAction_READ, returning a not-found error so that existence is not disclosed. Nothing compensates further down: GetLinkWorkspace reaches GetOrCreateWorkspace, which issues SearchWorkspace with a query carrying no ResourcePolicyQuery, and PrepareResourcePolicyQuery returns the query unmodified when that field is nil, so the workspace service applies no policy filter. The workspace UUID is not secret, because the unauthenticated public page served for a share link embeds it as START_REPOSITORY. Any account holding a standard user role can therefore submit the UUID and receive the link hash and URL, the owner's user identifier, the hidden share user login, the permission set, the download limit and count, the target users, the expiry, and the password-required flag, while a direct read of the shared node from the same account is refused.

Severity
MEDIUM
CVSS score
5.3 (v4.0)
Vulnerability status
Deferred
Source identifier
Published
2026-08-18 20:17:34.503000
Last modified
2026-10-22 22:10:00.250000
View original CVE JSON
{
  "id": "CVE-2026-76032",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-18T20:17:34.503",
  "lastModified": "2026-10-22T22:10:00.250",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Pydio Cells 5.0.0 through 5.0.2 returns share-link details to any authenticated user. The REST handler for GET /a/share/link/{Uuid} in idm/share/rest/handler.go reads the workspace UUID from the path, calls LinkById, and writes the result with no authorization step, whereas the sibling handler for GET /a/share/cell/{Uuid} loads the workspace and requires MatchPolicies with ResourcePolicyAction_READ, returning a not-found error so that existence is not disclosed. Nothing compensates further down: GetLinkWorkspace reaches GetOrCreateWorkspace, which issues SearchWorkspace with a query carrying no ResourcePolicyQuery, and PrepareResourcePolicyQuery returns the query unmodified when that field is nil, so the workspace service applies no policy filter. The workspace UUID is not secret, because the unauthenticated public page served for a share link embeds it as START_REPOSITORY. Any account holding a standard user role can therefore submit the UUID and receive the link hash and URL, the owner's user identifier, the hidden share user login, the permission set, the download limit and count, the target users, the expiry, and the password-required flag, while a direct read of the shared node from the same account is refused."
    },
    {
      "lang": "es",
      "value": "Pydio Cells 5.0.0 a 5.0.2 devuelve detalles de enlace compartido a cualquier usuario autenticado. El gestor REST para GET /a/share/link/{Uuid} en idm/share/rest/handler.go lee el UUID del espacio de trabajo de la ruta, llama a LinkById y escribe el resultado sin un paso de autorización, mientras que el gestor hermano para GET /a/share/cell/{Uuid} carga el espacio de trabajo y requiere MatchPolicies con ResourcePolicyAction_READ, devolviendo un error de no encontrado para que la existencia no sea revelada. Nada compensa más abajo: GetLinkWorkspace alcanza GetOrCreateWorkspace, que emite SearchWorkspace con una consulta que no lleva ResourcePolicyQuery, y PrepareResourcePolicyQuery devuelve la consulta sin modificar cuando ese campo es nulo, por lo que el servicio de espacio de trabajo no aplica ningún filtro de política. El UUID del espacio de trabajo no es secreto, porque la página pública no autenticada servida para un enlace compartido lo incrusta como START_REPOSITORY. Cualquier cuenta que tenga un rol de usuario estándar puede, por lo tanto, enviar el UUID y recibir el hash y la URL del enlace, el identificador de usuario del propietario, el inicio de sesión de usuario de recurso compartido oculto, el conjunto de permisos, el límite y el recuento de descargas, los usuarios objetivo, la caducidad y el indicador de contraseña requerida, mientras que una lectura directa del nodo compartido desde la misma cuenta es rechazada."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "pydio",
          "product": "cells",
          "defaultStatus": "unaffected",
          "repo": "https://github.com/pydio/cells",
          "packageURL": "pkg:golang/github.com/pydio/cells/v5",
          "versions": [
            {
              "version": "5.0.0",
              "lessThanOrEqual": "5.0.2",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/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",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "LOW",
          "vulnIntegrityImpact": "NONE",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N",
          "baseScore": 4.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-20T13:41:46.463116Z",
          "id": "CVE-2026-76032",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-862"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/pydio/cells",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pydio/cells/blob/v5.0.2/common/proto/service/converter.go#L35-L38",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pydio/cells/blob/v5.0.2/frontend/web/public-handler.go#L167",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pydio/cells/blob/v5.0.2/idm/share/rest/handler.go#L133-L158",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pydio/cells/blob/v5.0.2/idm/share/rest/handler.go#L193-L203",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/pydio/cells/issues/981",
      "source": "[email protected]"
    },
    {
      "url": "https://www.vulncheck.com/advisories/pydio-cells-to-missing-authorization-on-the-share-link-rest-handler",
      "source": "[email protected]"
    }
  ]
}