| Gói / sản phẩm | Phiên bản bị ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| vllm | ≥ 0.11.0, ≤ 0.23.0≥ 0.11.0, < 0.24.0 | 0.24.0 |
Issue 1: EXIF orientation not normalized → The image orientation processed by the model differs from how humans view it, introducing interpretation bias.
Issue 2: PNG tRNS not explicitly flattened before converting to RGB → After conversion, transparent/semi-transparent pixels are rendered unexpectedly, making otherwise subtle overlay elements visible and distorting the input content. (This attack is similar to AlphaDog: RGBA handling is already correct in vLLM, but since tRNS permits RGB images, the correct processing path isn’t taken.)
Issue 3 : Pillow only loads the first frame when loading APNG or GIF files.
ImageOps.exif_transpose is not called to normalize EXIF orientation.tRNS in P/L/RGB + tRNS and other non-RGBA modes take the image.convert("RGB") path, which implicitly discards/remaps transparency semantics.Current state:
ImageOps.exif_transposeis not used. (Although therescale_image_sizefunction (https://github.com/vllm-project/vllm/blob/main/vllm/multimodal/image.py#L14) exists and includes atransposeparameter, I’ve found that it doesn’t seem to be called anywhere outside thetestdirectory.)
Call order: runs first; if the conditions are met, is called.
Bạn đang dùng một trong các sản phẩm này? Quét site để biết có đang lộ phiên bản có lỗ hổng không.
Quét site miễn phí_convert_image_modeconvert_image_modeIssue: Only the “RGBA → RGB” path is explicitly flattened. P, L, or RGB with tRNS all fall back to image.convert("RGB"). For PNGs that include tRNS, convert("RGB") directly produces 24-bit RGB, leading to:
P mode: The transparent index becomes an actual RGB color (often black, white, or an undefined background), so transparency is lost.L/LA and RGB + tRNS: convert("RGB") doesn’t composite against a chosen background first, so elements that relied on transparency to be hidden or softened become solid.vllm/multimodal/image.py. The existing RGBA→RGB flattening is correct; the issues center on missing EXIF normalization and non-RGBA tRNS not being explicitly composited.A fix for this vulnerability was merged here: https://github.com/vllm-project/vllm/pull/44974