Fact-checked by Grok 2 weeks ago

Billion laughs attack

The Billion Laughs attack, also known as an XML bomb or exponential entity expansion attack, is a type of denial-of-service (DoS) attack that exploits vulnerabilities in XML parsers by using recursively nested entity definitions within a document type definition (DTD) to trigger massive, exponential data expansion during parsing, often consuming excessive memory and CPU resources to crash the targeted system. This attack works by defining a series of in an inline DTD that reference each other in a nested manner, where each subsequent repeats the previous one multiple times, leading to rapid amplification of the parsed output. For instance, an attacker might craft an XML document starting with a base like <!ENTITY lol "lol">, followed by <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> (repeating 10 times), and continuing this pattern up to <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">, so that invoking &lol9; in the document body expands to a billion instances of "lol", transforming a small input file (under 1 KB) into gigabytes of data. The name "Billion Laughs" derives from this explosive repetition of a humorous string like "lol", though variations can use any repeating content and have been adapted to other markup languages such as that support similar macro expansions. First documented in detail around 2009, the attack highlights longstanding issues in XML processing libraries across platforms, including Microsoft's .NET Framework, Java's DOM parsers, and Python's xml modules, where default configurations often enable DTD processing on untrusted inputs. Its consequences include application crashes, service disruptions, and potential denial of service for entire servers, with a medium level as classified by tools due to its ease of execution and broad applicability to any system parsing external XML. To mitigate it, developers should disable DTD processing entirely (e.g., via ProhibitDtd = true in .NET or disallow-doctype-decl in Java), limit entity expansion depth and character counts, and use secure parsing libraries like Python's defusedxml or updated frameworks such as .NET 4.5.2 and later, which prohibit such expansions by default.

Introduction and Background

Definition and Overview

The Billion Laughs attack, also known as the XML bomb or exponential entity expansion (XEE) attack, is a type of denial-of-service (DoS) exploit that targets XML parsers by leveraging nested entity definitions to trigger exponential growth in the processed document size during parsing. This attack exploits the way XML parsers resolve and expand entities as specified in the XML 1.0 standard, where a small input file can expand to consume vast amounts of memory and computational resources. In XML, entities serve as placeholders for reusable content and are declared within a Document Type Definition (DTD), which provides a schema for validating document structure. Internal entities are defined entirely within the DTD subset of the document itself, while external entities reference content from outside sources, such as files or URLs; parsers replace entity references with their resolved values during processing, potentially leading to recursive expansions if entities are nested. The DTD, enclosed in a DOCTYPE declaration, enables these entity definitions and is a core mechanism for XML modularity, but it introduces risks when parsers fully expand entities without limits. The primary objective of the Billion Laughs attack is to overwhelm target systems with resource exhaustion using a compact , often just a few kilobytes, which expands to gigabytes or more in memory usage, causing parser crashes, application slowdowns, or complete system denial. This makes it particularly effective against services that parse untrusted XML inputs, such as web or document processors. As a form of algorithmic complexity attack, the Billion Laughs exploits the worst-case quadratic or higher time and space complexity in entity resolution algorithms, aligning it with broader resource exhaustion techniques that manipulate data structures to trigger disproportionate computational demands.

History and Discovery

The Billion Laughs attack, a form of denial-of-service (DoS) exploit targeting XML parsers, was first publicly discussed in late December 2002, with security researcher Amit Klein of Sanctum Inc. disclosing details on December 17, 2002. Klein demonstrated how malicious Document Type Definitions (DTDs) in XML documents could trigger recursive entity references, leading to exponential expansion and unlimited resource consumption in vulnerable parsers, ultimately causing crashes or severe performance degradation. This discovery highlighted a critical flaw in XML processing across multiple vendors' implementations, including parsers for SOAP and web services servers, marking the initial identification of entity expansion as a potent DoS vector. In early discussions, the vulnerability was commonly termed an "XML bomb" due to its explosive impact on system resources. The more evocative name "Billion Laughs" gained popularity in the mid-2000s, originating from proof-of-concept payloads that defined nested entities like &lol;, &lolz;, and others, resulting in billions of repeated "lol" strings upon expansion and evoking cascading laughter. This terminology underscored the attack's deceptive simplicity and humorous yet destructive nature, while Klein's work shifted focus from general parser overloads to targeted . Prior to 2002, general attacks on applications were documented as early as 1992, typically involving large or malformed inputs to exhaust resources, but XML-specific exploits emerged with the adoption of XML following its in 1998. Post-disclosure, awareness evolved rapidly, with entity-specific exploits becoming a focal point in XML research. The vulnerability was formally cataloged by as CWE-776 ("Improper Restriction of Recursive Entity References in DTDs") in , establishing it as a technique in XML processing and prompting updates to security guidelines in standards bodies, though core XML 1.0 specifications saw clarifications on entity handling in subsequent editions without mandating restrictions.

Mechanism

How the Attack Works

The Billion Laughs attack targets XML parsers that enable Document Type Definition (DTD) processing and entity expansion by default, as these features allow the definition and recursive resolution of internal entities within the XML document. The attack begins with the inclusion of an inline DTD in the XML document, where a series of nested general entities is defined to create recursive references. For instance, a base entity such as "lol" is first defined with a short string value, like "lol"; subsequent entities then reference this base multiple times, with each higher-level entity expanding the previous one by a fixed factor, building a chain of dependencies up to several levels deep. When the parser encounters a reference to the deepest nested entity in the document body, it initiates recursive resolution: the deepest entity is expanded by substituting its references, which in turn triggers further expansions down the chain, ultimately replicating the base string an enormous number of times. This process exploits the parser's obligation to fully resolve all entities before constructing the document object model (DOM) or output stream. The growth follows an exponential mathematical model, where the final expanded size approximates b^n, with b as the base expansion factor (commonly 10, representing 10 repetitions per level) and n as the number of nesting levels. For example, with 8 levels and a base of 10, the resolution yields approximately $10^8 (100 million) instances of the base string, transforming an input document of under 1 into an output requiring around 300 MB of . This amplification occurs because each level multiplies the preceding one's output without bound, limited only by the parser's configuration or system resources. During expansion, the parser allocates for the increasingly large intermediate strings at each level, leading to rapid exhaustion of available and potential invocation of costly swapping. Additionally, the recursive substitutions demand significant CPU cycles for string and entity lookup, while poorly implemented parsers may encounter overflows from deep depths, culminating in a denial-of-service condition through resource depletion.

Code Example

The following XML document provides a practical example of a Billion Laughs attack payload, utilizing an internal DTD to define nested general entities that enable exponential expansion during parsing.
xml
<?xml version="1.0"?>
<!DOCTYPE lolz [
  <!ENTITY lol "lol">
  <!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
  <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
  <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
  <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
  <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
  <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
  <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
  <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>
This payload begins with the base entity lol defined as the string "lol" and builds eight levels of nesting, where each higher-level entity incorporates the prior entity ten times. When a vulnerable XML parser resolves the reference to &lol9; in the root element, it triggers recursive expansion, resulting in approximately 100 million instances of "lol". The original document is under 1 KB (roughly 800 bytes), but the fully expanded output exceeds 300 million characters, equivalent to about 300 MB of memory allocation (assuming UTF-8 encoding). Vulnerable parsers, including older versions of libxml2 prior to adequate recursion limits, exhibit denial-of-service effects such as excessive CPU usage, memory exhaustion, or outright crashes during entity resolution. The expansion can be visualized through the following table, which outlines each entity level, its references, the multiplier introduced at that level, and the approximate cumulative character count after expansion (based on 3 characters per "lol" instance):
LevelEntityReferencesMultiplier (per level)Cumulative MultiplierApproximate Size (characters)
0lol"lol"113
1lol210 × lol101030
2lol310 × lol21010²300
3lol410 × lol31010³3,000
4lol510 × lol41010⁴30,000
5lol610 × lol51010⁵300,000
6lol710 × lol61010⁶3,000,000
7lol810 × lol71010⁷30,000,000
8lol910 × lol81010⁸300,000,000
To test this payload safely, operate within an isolated environment, such as a or , to prevent resource exhaustion on the primary system. The xmllint utility from the library serves as a common tool for reproduction; invoking it on the file without entity expansion limits (e.g., xmllint example.xml) in vulnerable configurations will demonstrate the attack's effects through high memory consumption or process termination.

Exponential Entity Expansion Variants

While the classic billion laughs attack relies on deeply nested internal entities to achieve in output size, variants of exponential entity expansion modify this approach to exploit different parser behaviors, often targeting resource consumption or limits within XML processing. These adaptations emerged as parsers began implementing basic safeguards against nested , prompting attackers to find alternative paths for denial-of-service effects. One prominent variant is the quadratic blowup attack, which avoids deep nesting by defining a single large internal —typically a long string of repeated characters, such as 50,000 instances of a base unit—and then referencing it multiple times (e.g., 50,000 references) in the body or attributes. This results in O(n²) expansion, where a compact input of around 200 can balloon to over 2.5 during , exhausting without triggering limits on entity depth. Discovered by security researcher Amit Klein, this technique bypasses defenses focused solely on nested entities, as the expansion occurs through repeated substitution rather than . Deep recursion variants shift the attack vector toward CPU and stack exhaustion by creating long chains of entities that reference each other in a linear or cyclic manner, rather than exponential nesting. For instance, a single chain of hundreds or thousands of sequentially defined entities (e.g., &e1; expands to &e2;, &e2; to &e3;, and so on) can force the parser into excessive recursive calls, leading to stack overflows in implementations that do not enforce strict depth limits. Although the XML specification prohibits circular references, some parsers tolerate deep but non-cyclic chains, making this viable for resource denial; mutual recursion (e.g., &a; referencing &b;, and &b; referencing &a;) further amplifies CPU usage by inducing infinite loops where permitted. These attacks are particularly effective against mobile or embedded XML processors with limited stack space. Mixed internal and external entity expansions combine internal general entities with external parameter entities to amplify effects, often by embedding references to remote or large external DTDs within internal expansions. An attacker might define an internal entity that incorporates an external parameter entity (e.g., %ext; pulling in a large remote subset), then nest or repeat this hybrid within the document, leading to compounded growth as the parser fetches and substitutes external content during internal resolution. This variant exploits parsers that process both entity types simultaneously, increasing the beyond purely internal mechanisms. The evolution of XML standards and parsers has directly responded to these variants, with key implementations like Apache Xerces and .NET's XmlReader introducing configurable limits to curb expansion. Early XML 1.0 specifications () lacked explicit resource bounds, allowing unchecked growth, but post-2002 attacks prompted additions such as Xerces-J's entityExpansionLimit property (defaulting to 100,000 expansions since version 2.6.2 in 2005) to cap total substitutions and prevent or deep blowups. Similarly, .NET's XmlReader, vulnerable in versions 1.x to attribute-based expansions, incorporated MaxCharactersFromEntities (default 0, meaning unlimited, in .NET 2.0, 2005; explicitly configurable for limits) and DtdProcessing modes to prohibit or limit entity handling, reflecting a shift toward secure-by-default in enterprise environments. These measures, informed by analyses of attack patterns, have reduced in compliant parsers while highlighting ongoing gaps in legacy or non-standard implementations. Recent CVEs as of 2025, such as CVE-2024-1455 in libraries and CVE-2025-3225 in parsers, illustrate the continued exploitation of these variants in modern software.

Attacks in Other Formats

In YAML parsers, the billion laughs attack is replicated through the use of anchors (&) and aliases (*), which enable recursive s that cause data expansion during deserialization. An defines a reusable , while aliases reference it multiple times, leading to nested structures that balloon in memory usage as the parser resolves them—for example, a small YAML file with 10 levels of 10-fold alias nesting can expand to billions of repeated elements, overwhelming libraries like Py and causing denial of service. SVG files, being XML-based, allow the embedding of malicious definitions that trigger the classic billion laughs expansion when parsed by image processors or thumbnail generators. For instance, an SVG with nested entities like <!ENTITY lol1 "lol"> followed by progressively larger references can force during rendering, consuming gigabytes of memory. Similarly, XMP in formats like PDF or can carry these XML bombs, exploiting metadata extraction tools in workflows that handle diverse media. Although JSON lacks native entity support, denial-of-service attacks analogous to billion laughs occur via deeply nested or recursive structures that exhaust stack space during . In Java's Jackson library, for example, unbounded nesting in objects during deserialization can trigger exceptions, leading to application crashes from . These vulnerabilities, such as CVE-2020-36518, demonstrate how template or macro-like expansions in JSON processors mimic the exponential impact without true entities. Cross-format vulnerabilities arise in file upload handlers and systems that process embedded markup from multiple sources, amplifying the . Systems like , for instance, can be targeted through uploaded images containing or XMP payloads, where automated thumbnail generation or metadata parsing resolves the expansions, potentially denying service to the entire platform.

Impact and Real-World Examples

Effects on Systems

The Billion Laughs attack induces severe resource exhaustion in vulnerable XML parsers by exploiting recursive entity expansion, where a compact input under 1 balloons to around 3 GB in memory during processing. This occurs as the parser resolves nested entities, consuming vast amounts of and often triggering out-of-memory () conditions that activate system killers or force process termination to prevent total system failure. Concurrently, the attack drives CPU utilization to near 100% as the parser iteratively expands entities, halting normal operations and rendering the affected application unresponsive for extended periods. In environments like web services or API endpoints that ingest XML payloads, this results in widespread denial of service (DoS), where legitimate requests queue indefinitely or fail outright due to resource contention. Parser implementations exhibit varied responses to the attack; for instance, in versions prior to 2.9.2 fails to block entity expansion even when disabled, leading to excessive CPU drain and potential application crashes from unchecked recursion. Similarly, older XML processors in desktop applications or services may hang or terminate abruptly, amplifying the impact across connected systems. In setups reliant on XML parsing, the attack on a single can propagate disruptions, as resource-starved services delay or fail responses to downstream components, creating cascading outages. Performance benchmarks indicate that just 9 levels of nesting suffice to generate billions of resolved strings, overwhelming typical limits and necessitating for recovery, such as process restarts.

Notable Incidents

One of the earliest documented vulnerabilities related to the billion laughs attack occurred in , when researcher Klein demonstrated how recursive XML entity expansion could overwhelm parsers, leading to server crashes in systems using libraries like those in Apache Axis versions 1.x and early .NET Framework implementations. These early incidents highlighted resource exhaustion risks in XML processing during the 2002-2010 period, affecting web services and applications reliant on unpatched parsers. In 2014, a affected millions of and installations, where XML quadratic blowup attacks—a variant of exponential —enabled denial-of-service through PHP's XML processor, impacting systems globally. Similarly, in 2015, versions prior to 1.24.2 were susceptible to billion laughs attacks via uploads and XMP metadata parsing under , as detailed in task T85848 and assigned CVE-2015-2942, potentially causing resource denial in platforms. More recently, in 2024, the Python library (versions below 0.1.35) was found vulnerable to billion laughs attacks through its XMLOutputParser, allowing exponential entity expansion via a Billion Laughs attack that could lead to denial-of-service in AI-driven applications, as documented in CVE-2024-1455. Although specific high-profile exploits in cloud APIs like pre-mitigated AWS XML services remain less publicly detailed, such vulnerabilities underscore ongoing risks in XML-dependent infrastructures. Reports of billion laughs and related XML entity expansion attacks have increased in the , driven by the proliferation of and , with noting their persistence as a misconfiguration risk in web applications, though no longer a standalone Top 10 category since 2021.

Prevention and Mitigation

Parser Configuration

To mitigate the Billion Laughs attack, XML parsers can be configured to disable Document Type Definitions (DTDs), which prevents the declaration and expansion of internal entities used in the attack. In the Xerces parser for , this is achieved by setting the feature http://apache.org/xml/features/disallow-doctype-decl to true on a DocumentBuilderFactory instance, ensuring no DTD processing occurs. Similarly, in the library, the XML_PARSE_NODTD option can be specified when creating a parser context with xmlCreatePushParserCtxt or equivalent functions, avoiding DTD loading and entity definitions altogether. Entity expansion limits provide an additional layer of protection by capping the number of recursive expansions, halting processing if the threshold is exceeded. In Java's JAXP implementation, the system property jdk.xml.entityExpansionLimit can be set to a low value like (e.g., via -Djdk.xml.entityExpansionLimit=1024 at JVM startup), limiting total entity expansions across documents. For .NET's XmlReader, the XmlReaderSettings.MaxCharactersFromEntities property enforces a memory quota on expanded entity content, such as setting it to 1024000 characters to restrict output size from resolution. Secure parsing modes further enhance resilience by using non-validating parsers and disabling external entity resolution. In , enabling secure processing with factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true) on DocumentBuilderFactory activates built-in safeguards against excessive resource use, while overriding resolveEntity to return null prevents external fetches. Non-validating parsers, which skip full DTD validation, are the default in many libraries when DTD features are disabled, reducing . Library-specific configurations tailor these protections to common tools. In 's xml.etree.ElementTree, external entity resolution is disabled by default since Python 3.6, but for added safety against internal expansions, the defusedxml package can be used with DefusedXMLParser(disable_entities=True) to block all processing. Go's encoding/xml package lacks support for entity declarations by design, inherently preventing expansion attacks without additional configuration.

Best Practices

To prevent billion laughs attacks, organizations should implement robust input validation mechanisms for XML processing. Sanitizing XML inputs by removing or prohibiting Document Type Definitions (DTDs) is a fundamental step, as these enable expansions that fuel the attack. Additionally, employing schema validation without support ensures only well-formed, expected structures are parsed, rejecting malformed or oversized payloads. Imposing strict length limits on incoming XML payloads further mitigates exhaustion by capping the data volume before parsing begins. Architectural defenses play a critical role in broader system resilience. Where feasible, applications should avoid XML altogether in favor of simpler formats like for data exchange, reducing exposure to parser-specific vulnerabilities. Isolating XML parsers within sandboxes or containers limits the blast radius of any expansion attempt, containing resource spikes to non-critical environments. parse requests per user or IP address prevents flood-based exploitation, ensuring steady-state processing without overwhelming backend resources. Effective monitoring and response strategies enhance detection and recovery. Logging parser resource usage, such as memory and CPU consumption during XML processing, allows for real-time and alerting on unusual spikes indicative of entity expansion. Deploying web application firewalls (WAFs) with rules targeting entity patterns, such as those in ModSecurity's Core Rule Set, blocks suspicious XML payloads at the network edge. Regular updates to XML parsing libraries address known vulnerabilities that could enable attacks, maintaining a hardened posture against evolving threats. Adhering to established compliance frameworks and fostering developer education ensures long-term prevention. Following the XXE Prevention provides standardized guidelines for secure XML handling across the development lifecycle. Training developers on XML security risks, including entity expansion pitfalls, promotes awareness and proactive coding practices. Regular audits for CWE-776 weaknesses in code and configurations identify and remediate gaps before deployment.

References

  1. [1]
    XML Security - OWASP Cheat Sheet Series
    Billion Laughs¶. When an XML parser tries to resolve the external entities included within the following code, it will cause the application to start ...Introduction · Dealing with malformed XML... · Dealing with invalid XML...
  2. [2]
    Exponential Entity Expansion (Billion Laughs Attack)
    An exponential entity expansion, or “billion laughs” attack is a type of denial-of-service (DoS) attack. It is aimed at parsers of markup languages like XML or ...
  3. [3]
    XML Denial of Service Attacks and Defenses - Microsoft Learn
    XML DoS attacks are extremely asymmetric: to deliver the attack payload ... You can try this attack (sometimes called the Billion Laughs attack) for ...
  4. [4]
    XML Bomb (Billion Laughs Attack) - CQR
    Mar 1, 2023 · XML Bomb (Billion Laughs Attack) is a type of denial-of-service (DoS) attack that targets XML parsers by overwhelming them with a massive amount of nested ...
  5. [5]
    XML External Entity Prevention - OWASP Cheat Sheet Series
    These parsers are vulnerable to external entity attacks and Billion Laughs at versions below version 4.5.2 but protected at versions equal or greater than 4.5.2 ...Introduction · General Guidance · Java · NET
  6. [6]
    CAPEC-197: Exponential Data Expansion (Version 3.9) - Mitre
    The most common example of this type of attack is the "many laughs" attack (sometimes called the 'billion laughs' attack). For example: <?xml version="1.0"?>
  7. [7]
    Extensible Markup Language (XML) 1.0 (Fifth Edition) - W3C
    Nov 26, 2008 · This grammar is known as a document type definition, or DTD. The document type declaration can point to an external subset (a special kind of ...Namespaces in XML · Abstract · Review Version · First Edition
  8. [8]
    12 Java API for XML Processing (JAXP) Security Guide
    Exponential Entity Expansion Attack​​ The exponential entity expansion attack, also know as the XML bomb or billion laughs attack, is a denial-of-service attack ...
  9. [9]
  10. [10]
    [PDF] A Hybrid Approach to Detecting Algorithmic Complexity Vulnerabilities
    Nov 7, 2022 · Billion laughs attack 2 utilizes the worst-case performance of an. XML parser; the ReDoS 3 attacks make use of the worst-case super- linear ...
  11. [11]
    [PDF] Inputs of Coma: Static Detection of Denial-of-Service Vulnerabilities
    Inputs of coma are related to algorithmic-complexity DoS attacks that exhaust server resources by leveraging the dispar- ity between average-case and worst-case ...
  12. [12]
    Re: Multiple vendors XML parser (and SOAP/WebServices server ...
    Dec 16, 2002 · Date: 16 Dec 2002 13:15:40 -0800. "Amit" == Amit Klein <Amit.Klein () SanctumInc com> writes: Amit> Multiple vendors XML parser (and SOAP ...Missing: Billion Laughs discovery
  13. [13]
    CWE-776: Improper Restriction of Recursive Entity References in ...
    XEE is the acronym commonly used for XML Entity Expansion. Billion Laughs Attack ... Amit Klein. "Multiple vendors XML parser (and SOAP/WebServices server) ...Missing: discovery | Show results with:discovery
  14. [14]
    CVE-2003-1564 Detail - NVD
    libxml2, possibly before 2.5.0, does not properly detect recursion during entity expansion, which allows context-dependent attackers to cause a denial of ...
  15. [15]
    xmllint - GNOME
    Set the maximum amplification factor which protects against exponential entity expansion ("billion laughs"). The default value is 5. Documents making heavy ...
  16. [16]
    [PDF] SoK: XML Parser Vulnerabilities - USENIX
    In 2002, Steuck discovered the powerful XML Ex- ternal Entity (XXE) attack on XML parsers that allows. FSA [60]. Leading companies like Google [15], Face- book ...<|control11|><|separator|>
  17. [17]
  18. [18]
    XmlReaderSettings.MaxCharactersFromEntities Property
    The following code sets this property, and then attempts to parse a document that contains an entity that expands to a size greater than the set limit.
  19. [19]
    Billion laughs attack #235 - yaml/pyyaml - GitHub
    Nov 23, 2018 · Is there a way to disable anchors and aliases or cap the number of characters that can be created through expansions ... Billion laughs attack · ...
  20. [20]
    T85848 Billion Laughs attack in SVG and XMP Metadata
    This attack uses a series of expanding XML entities which, when fully expanded, result in approximately 3GB of data to be processed. This causes the XML ...
  21. [21]
    Die Laughing from a Billion Laughs - IOActive
    Nov 18, 2014 · Explore the concept of a billion laughs attack and how XML entities can lead to resource exhaustion in applications.Missing: algorithmic complexity
  22. [22]
    NVD - CVE-2014-3660
    ### Summary of CVE-2014-3660
  23. [23]
    [PDF] Automatic Detection and Fixing of Java XXE Vulnerabilities Using ...
    After evaluating Apache Axis 1 and Apache Axis 2, they found that both Apache Axis 1 and Apache Axis 2 were vulnerable to many of the vulnerabilities tested. An ...
  24. [24]
    WordPress and Drupal Core Denial Of Service Vulnerability
    Aug 6, 2014 · An XML quadratic blowup attack is similar to a Billion Laughs attack. ... Attacks on Closed WordPress Plugins. Security Advisory · Sucuri ...
  25. [25]
    CVE-2015-2942 Detail - NVD
    ... billion laughs attack," a different vulnerability than CVE-2015-2937. ... Patch Vendor Advisory. https://phabricator.wikimedia.org/T85848, CVE, MITRE, Exploit.
  26. [26]
    CVE-2024-1455 Detail - NVD
    Mar 26, 2024 · A vulnerability in the langchain-ai/langchain repository allows for a Billion Laughs Attack, a type of XML External Entity (XXE) exploitation.
  27. [27]
    OWASP top 10 2021: what's new and changed - Outpost24
    Mar 31, 2025 · A04-XML External Entities (XXE) vanishes as a separate category and is now included within the 2017 A06 Security Misconfiguration in the ...
  28. [28]
    Introduction - OWASP Top 10:2025 RC1
    The OWASP Top 10 2021 is all-new, with a new graphic design and an available one-page infographic you can print or obtain from our home page.Missing: 2020s | Show results with:2020s
  29. [29]
    Processing Limit Definitions (The Java™ Tutorials > Java API for ...
    entityExpansionLimit ; Definition, Limit the number of entity expansions. ; Value, A positive integer. A value less than or equal to 0 indicates no limit. If the ...
  30. [30]
  31. [31]
  32. [32]
    XML Processing Modules — Python 3.14.0 documentation
    A quadratic blowup attack is similar to a Billion Laughs attack; it abuses entity expansion, too. Instead of nested entities it repeats one large entity with a ...<|separator|>
  33. [33]
    encoding/xml - Go Packages
    HTMLEntity is an entity map containing translations for the standard HTML entity characters. See the [Decoder.Strict] and [Decoder.Entity] fields' documentation ...Documentation · Overview · Functions · Types