Silverstripe Assets Module has a DBFile::getURL() permission bypass
Moderate severity
GitHub Reviewed
Published
Apr 16, 2026
in
silverstripe/silverstripe-assets
•
Updated Apr 16, 2026
Package
Affected versions
< 2.4.5
>= 3.0.0, < 3.1.3
Patched versions
2.4.5
3.1.3
Description
Published by the National Vulnerability Database
Apr 16, 2026
Published to the GitHub Advisory Database
Apr 16, 2026
Reviewed
Apr 16, 2026
Last updated
Apr 16, 2026
Impact
Images rendered in templates or otherwise accessed via
DBFile::getURL()orDBFile::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()orConvert().Note that if you use
DBFiledirectly in the$dbconfiguration for aDataObjectclass that doesn't subclassFile, and if you were setting the visibility of those files to "protected", those files will now need an explicit access grant to be accessed. If you do not want to explicitly provide access grants for these files (i.e. you want these files to be accessible by default), you should use the "public" visibility.Reported by
Restruct web & apps
References