Skip to main content

Loop with Unreachable Exit Condition ('Infinite Loop')

CVE-2024-12704

Severity High
Score 7.5/10

Summary

A vulnerability in the 'LangChainLLM' class of the run-llama/llama_index allows for a Denial of Service (DoS) attack. The 'stream_complete' method executes the llm using a thread and retrieves the result via the 'get_response_gen' method of the 'StreamingGeneratorCallbackHandler' class. If the thread terminates abnormally before the '_llm.predict' is executed, there is no exception handling for this case, leading to an infinite loop in the 'get_response_gen' function. This can be triggered by providing an input of an incorrect type, causing the thread to terminate and the process to continue running indefinitely. This issue affects llama-index versions 0.6.5 through 0.9.48 and llama-index-core versions through 0.12.5.

  • LOW
  • NETWORK
  • NONE
  • UNCHANGED
  • NONE
  • NONE
  • NONE
  • HIGH

CWE-835 - Loop with Unreachable Exit Condition

Loops with multiple exits and flags detract from the quality of an application. They tend to make control structures difficult to understand, and introduce the risk of non-termination and other structural problems. The vulnerability “loop with unreachable exit condition” enables attackers to exploit this flaw, leading to denial of service.

Advisory Timeline

  • Published