Skip to content

Security: Potential denial of service from unbounded image decoding#5266

Open
tomaioo wants to merge 1 commit intonextcloud:mainfrom
tomaioo:fix/security/potential-denial-of-service-from-unbound
Open

Security: Potential denial of service from unbounded image decoding#5266
tomaioo wants to merge 1 commit intonextcloud:mainfrom
tomaioo:fix/security/potential-denial-of-service-from-unbound

Conversation

@tomaioo
Copy link
Copy Markdown

@tomaioo tomaioo commented Apr 20, 2026

Summary

Security: Potential denial of service from unbounded image decoding

Problem

Severity: Medium | File: lib/Service/ImageResizer.php:L22

resizeImage() loads arbitrary image bytes into memory and decodes them without checking input size or dimensions first. If attacker-controlled or remote-fetched image data is very large or crafted, this may cause excessive memory/CPU consumption and degrade service availability.

Solution

Validate input size before decoding (e.g., maximum bytes), enforce pixel/dimension limits, and fail fast on oversized payloads. Prefer safe decoding paths with resource limits and consider rejecting unsupported/complex image formats.

Changes

  • lib/Service/ImageResizer.php (modified)

`resizeImage()` loads arbitrary image bytes into memory and decodes them without checking input size or dimensions first. If attacker-controlled or remote-fetched image data is very large or crafted, this may cause excessive memory/CPU consumption and degrade service availability.

Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com>
@hamza221 hamza221 added 3. to review Waiting for reviews bug Something isn't working labels Apr 23, 2026
Copy link
Copy Markdown
Contributor

@hamza221 hamza221 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello,
I'm not sure if this is needed :
#5124 Whitelisted image formates were added in this PR #5124
And I think we can trust Instagram, Mastodon, Tumblr, Diaspora, Xing, Telegram, Gravatar Not send us Huge images
But even if we want to add the limit I would rather have a configurable limit than a hardcoded one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants