Skip to main content

Elgg CVE-2026-65650

| EUVDEUVD-2026-47759 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-07-22 mitre GHSA-7983-35fr-8qwm
4.3
CVSS 3.1 · Vendor: mitre
Share

Severity by source

Vendor (mitre) PRIMARY
4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
vuln.today AI
4.3 MEDIUM

Network-delivered upload requires an authenticated user account (PR:L); GD OOM is availability-only with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Lifecycle Timeline

3
Patch available
Jul 22, 2026 - 19:17 EUVD
Source Code Evidence Fetched
Jul 22, 2026 - 18:02 vuln.today
Analysis Generated
Jul 22, 2026 - 18:02 vuln.today

DescriptionCVE.org

Elgg before 7.0.0 does not check image dimensions to prevent denial of service via a large avatar upload.

AnalysisAI

Elgg's ImageService processes avatar uploads without validating source image dimensions prior to resizing, allowing authenticated users to trigger out-of-memory (OOM) conditions on the hosting server. All Elgg releases before 7.0.0 are affected; the fix introduced in 7.0.0 enforces hard limits on image height, width, and total resolution before any GD library resize operation is invoked. No public exploit identified at time of analysis, and the vulnerability is not listed in CISA KEV, but the technique is conceptually trivial for any authenticated user with avatar upload access.

Technical ContextAI

Elgg is an open-source PHP social networking framework. The vulnerable code resides in engine/classes/Elgg/ImageService.php, specifically in the resize() and fixOrientation() methods, which invoke PHP's GD library to process uploaded images. CWE-770 (Allocation of Resources Without Limits or Throttling) describes the root cause precisely: GD allocates an uncompressed pixel buffer proportional to the image's width-times-height pixel count, regardless of the compressed file size on disk. A crafted image with extreme pixel dimensions - say 50,000 x 50,000 pixels - forces GD to allocate roughly 7.5 GB of RAM for a standard 24-bit image, exhausting server memory. The fix, confirmed in commit ab91d59dc2caaa3fdbfe7e9b916fc0cc7e6b323a, adds a new assertValidImageDimensions() method that calls PHP's getimagesize() before any resize operation and rejects images exceeding 10,000px height, 10,000px width, or 16,777,216 total pixels (16MP). These limits are also exposed as configurable settings ($CONFIG->image_resize_max_height, image_resize_max_width, image_resize_max_resolution) in elgg-config/settings.example.php. CPE cpe:2.3:a:elgg:elgg:*:*:*:*:*:*:*:* covers all versions prior to 7.0.0.

RemediationAI

Upgrade to Elgg 7.0.0 or later, which enforces image dimension validation via the new assertValidImageDimensions() method introduced in commit ab91d59dc2caaa3fdbfe7e9b916fc0cc7e6b323a (PR #15041 at https://github.com/Elgg/Elgg/pull/15041). Default limits in 7.0.0 are 10,000px maximum height, 10,000px maximum width, and 16,777,216 pixels (16MP) maximum total resolution, all configurable via $CONFIG->image_resize_max_height, $CONFIG->image_resize_max_width, and $CONFIG->image_resize_max_resolution. For sites unable to upgrade immediately, restricting upload file size at the web server layer (e.g., Nginx client_max_body_size or Apache LimitRequestBody) provides partial mitigation but does not fully prevent the attack, because a compressed PNG or TIFF can be very small on disk yet expand to an enormous pixel buffer - file size limits do not bound decompressed memory allocation. A more effective compensating control is to disable avatar uploads entirely for untrusted user roles, or to restrict account registration to verified users, which eliminates the PR:L attacker foothold. Note that no official Elgg security advisory URL beyond the GitHub PR was identified in the provided references.

Share

CVE-2026-65650 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy