Loop with Unreachable Exit Condition ('Infinite Loop')
CVE-2024-12704
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.
References
Advisory Timeline
- Published