← Back to CVE Explorer

CVE-2026-24749

Full vulnerability record from the local CVENow database.

Description

The Silverstripe Assets Module is a required component of Silverstripe Framework. In versions prior to 2.4.5 and 3.0.0-rc1 through 3.1.2, images rendered in templates or otherwise accessed via DBFile::getURL() or DBFile::getSourceURL() incorrectly add an access grant to the current session, which bypasses file permissions. This usually happens when creating an image variant, for example using a manipulation method like ScaleWidth() or Convert(). Note that if developers use DBFile directly in the $db configuration for a DataObject class that doesn't subclass File, and if they were setting the visibility of those files to "protected", those files will now need an explicit access grant to be accessed. If developers do not want to explicitly provide access grants for these files in their apps (i.e. they want these files to be accessible by default), they should use the "public" visibility. This issue has been fixed in versions 2.4.5 and 3.1.3.

Severity
MEDIUM
CVSS score
5.3 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-04-16 18:16:44.610000
Last modified
2026-10-26 21:10:00.170000
View original CVE JSON
{
  "id": "CVE-2026-24749",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-16T18:16:44.610",
  "lastModified": "2026-10-26T21:10:00.170",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "The Silverstripe Assets Module is a required component of Silverstripe Framework. In versions prior to 2.4.5 and 3.0.0-rc1 through 3.1.2, images rendered in templates or otherwise accessed via DBFile::getURL() or DBFile::getSourceURL() incorrectly add an access grant to the current session, which bypasses file permissions. This usually happens when creating an image variant, for example using a manipulation method like ScaleWidth() or Convert(). Note that if developers use DBFile directly in the $db configuration for a DataObject class that doesn't subclass File, and if they were setting the visibility of those files to \"protected\", those files will now need an explicit access grant to be accessed. If developers do not want to explicitly provide access grants for these files in their apps (i.e. they want these files to be accessible by default), they should use the \"public\" visibility. This issue has been fixed in versions 2.4.5 and 3.1.3."
    },
    {
      "lang": "es",
      "value": "El Módulo de Activos de Silverstripe es un componente requerido de Silverstripe framework. En versiones anteriores a la 2.4.5 y de la 3.0.0-rc1 a la 3.1.2, las imágenes renderizadas en plantillas o accedidas de otra manera a través de DBFile::getURL() o DBFile::getSourceURL() añaden incorrectamente una concesión de acceso a la sesión actual, lo que elude los permisos de archivo. Esto suele ocurrir al crear una variante de imagen, por ejemplo, usando un método de manipulación como ScaleWidth() o Convert(). Tenga en cuenta que si los desarrolladores usan DBFile directamente en la configuración $db para una clase DataObject que no subclase File, y si estaban configurando la visibilidad de esos archivos como ’protected’, esos archivos ahora necesitarán una concesión de acceso explícita para ser accedidos. Si los desarrolladores no quieren proporcionar explícitamente concesiones de acceso para estos archivos en sus aplicaciones (es decir, quieren que estos archivos sean accesibles por defecto), deberían usar la visibilidad ’public’. Este problema ha sido solucionado en las versiones 2.4.5 y 3.1.3."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "silverstripe",
          "product": "silverstripe-assets",
          "versions": [
            {
              "version": "< 2.4.5",
              "status": "affected"
            },
            {
              "version": ">= 3.0.0-rc1, < 3.1.3",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-04-18T02:35:55.902112Z",
          "id": "CVE-2026-24749",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-863"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/silverstripe/silverstripe-assets/security/advisories/GHSA-jgcf-rf45-2f8v",
      "source": "[email protected]"
    },
    {
      "url": "https://www.silverstripe.org/download/security-releases/cve-2026-24749",
      "source": "[email protected]"
    }
  ]
}