VYPR
Unrated severityNVD Advisory· Published Jul 19, 2023· Updated Oct 28, 2024

CVE-2023-37748

CVE-2023-37748

Description

ngiflib commit 5e7292 was discovered to contain an infinite loop via the function DecodeGifImg at ngiflib.c.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

An infinite loop vulnerability in ngiflib's DecodeGifImg function allows denial of service via a crafted GIF.

Vulnerability

An infinite loop vulnerability exists in the DecodeGifImg function at ngiflib.c:556 in ngiflib commit 5e7292. The affected code uses a for(;;) loop without proper exit conditions when processing specially crafted GIF images, leading to an infinite loop. The vulnerable version is commit 5e7292bfabbeeee8dca0bf4c9a77ff10c8e3bf28 as reported in the reference [1].

Exploitation

An attacker can trigger the infinite loop by providing a malicious GIF file as input to the gif2tga program compiled with -DNGIFLIB_NO_FILE and address sanitizer. The proof of concept provided reproduces the issue by running ./gif2tga -i ./poc2. No authentication or special network position is required; the attacker only needs to convince a user to process the crafted file [1].

Impact

Successful exploitation results in a denial of service condition: the program enters an infinite loop and becomes unresponsive, consuming CPU resources. No arbitrary code execution or privilege escalation is achieved. The impact is limited to availability [1].

Mitigation

As of the publication date, no official fix has been released in the repository. Users should monitor the vendor's repository for updates or patches. Until a fix is available, avoid processing untrusted GIF files with the affected version [1][2].

AI Insight generated on May 26, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2

Patches

0

No patches discovered yet.

Vulnerability mechanics

Root cause

"Missing exit condition in the LZW decoding loop allows malformed GIF input to cause an infinite loop."

Attack vector

An attacker crafts a malicious GIF file that triggers an infinite loop in the `DecodeGifImg` function at `ngiflib.c:556` [ref_id=1]. The loop iterates reading LZW codes via `GetGifWord`, but when the input is crafted such that neither the end-of-file code (`eof`) nor the pixel-count-zero condition (`npix==0`) is ever reached, the loop never returns [ref_id=1]. The attacker delivers the file to a victim who runs the `gif2tga` utility (or any program using ngiflib to decode GIFs), causing a denial of service (DoS) due to the infinite loop [ref_id=1].

Affected code

The infinite loop occurs in the `DecodeGifImg` function in `ngiflib.c` at line 556, within a `for(;;)` loop that processes LZW-encoded GIF image data [ref_id=1]. The loop lacks a proper exit condition when certain malformed input is encountered, causing it to spin indefinitely.

What the fix does

No patch is included in the bundle. The advisory [ref_id=1] reports the infinite loop at line 556 of `ngiflib.c` in the `DecodeGifImg` function but does not provide a fix. A proper remediation would add a maximum-iteration guard or additional input validation inside the `for(;;)` loop to break out when the decoder makes no progress after a reasonable number of iterations, preventing the hang on malformed GIF input.

Preconditions

  • inputThe victim must run a program (e.g., gif2tga) that uses ngiflib to decode a GIF file supplied by the attacker.
  • inputThe attacker must provide a specially crafted GIF file (poc2) that triggers the infinite loop in DecodeGifImg.

Reproduction

Clone the repository at commit 5e7292bfabbeeee8dca0bf4c9a77ff10c8e3bf28, build with `CC="clang -fsanitize=address -g" CFLAGS+=-DNGIFLIB_NO_FILE make`, then run `./gif2tga -i ./poc2` using the PoC file from https://github.com/GGb0ndQAQ/POC/blob/main/ngiflib/poc2 [ref_id=1].

Generated on May 26, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

1

News mentions

0

No linked articles in our index yet.