{"id":"GHSA-vxqj-p4gw-9h4c","kind":"vulnerability","aliases":["GHSA-vxqj-p4gw-9h4c"],"related":[],"title":"Incomplete CVE-2026-34755 remediation can be bypassed by request-level num_frames","description":"### Summary\n\nThe frame-count protection added by PR #38636 for GHSA-pq5c-rjhq-qp7p / CVE-2026-34755 is incomplete in vLLM v0.19.0 through v0.27.1 and current `main` at commit `6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce`.\n\nAn inference client can set `media_io_kwargs.video.num_frames=-1` in a stock `ChatCompletionRequest`. The production merge lets that request value replace the engine-level frame setting. `VideoMediaIO.load_base64(\"video/jpeg\", ...)` treats a negative value as unlimited and decodes every comma-separated JPEG frame before combining them with `np.stack`.\n\nIn a safe exact-path reproduction, the same 256-frame payload loaded 8 frames when the server value was 8, but all 256 frames when the request supplied `-1`. This restores request-controlled, linearly scalable memory allocation at the same decoder addressed by the parent advisory. I assess the issue as Moderate (CVSS 3.1: 6.5). The safe run demonstrates the limit bypass and allocation growth; it does not claim a reproduced service crash or RCE.\n\n### Details\n\nThe request field is exposed without a numeric security bound in [`ChatCompletionRequest`](https://github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/entrypoints/openai/chat_completion/protocol.py#L364-L370). `ChatParams.with_defaults()` performs the engine/request merge ([`renderers/params.py`](https://github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/renderers/params.py#L99-L122)), and the base merge gives runtime values precedence ([`media/base.py`](https://github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/base.py#L65-L80)).\n\n`VideoMediaIO.merge_kwargs()` removes unsafe request-level GPU backend settings but does not reject or clamp `num_frames` ([`media/video.py`](https://github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#L28-L66)). The resulting value reaches the following decoder branch ([`media/video.py`](https://github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#L103-L121)):\n\n```python\nif self.num_frames > 0:\n    frame_parts = data.split(\",\", self.num_frames)[: self.num_frames]\nelif self.num_frames == 0:\n    raise ValueError(\"num_frames must be greater than 0 or -1\")\nelse:\n    frame_parts = data.split(\",\")\n\nframes = np.stack(\n    [np.asarray(load_frame(frame_data)) for frame_data in frame_parts]\n)\n```\n\nThe effective policy is therefore:\n\n```text\nserver value:  {\"video\": {\"num_frames\": 8}}\nrequest value: {\"video\": {\"num_frames\": -1}}\neffective:     {\"video\": {\"num_frames\": -1}}\n```\n\nThe source-traced actor-to-sink chain is:\n\n```text\nPOST /v1/chat/completions\n  -> ChatCompletionRequest.media_io_kwargs\n  -> ChatCompletionRequest.build_chat_params()\n  -> ChatParams.with_defaults()\n  -> merge_media_io_kwargs() / VideoMediaIO.merge_kwargs()\n  -> MediaConnector data-URL handling\n  -> VideoMediaIO.load_base64(\"video/jpeg\", ...)\n  -> all-frame JPEG decode and np.stack\n```\n\nThe `-1` sentinel is an intentional “all frames” sampling preference and was shown in the runtime API example for PR #34778. PR #38636 also retained a negative-value unlimited test. This report does not claim that the sentinel itself is new. The security issue is the absence of a trust separation between an operator preference and the server-side ceiling introduced to remediate GHSA-pq5c. A low-privilege request can disable that ceiling. A very large positive request value has the same policy problem because the client selects the effective maximum.\n\n`VLLM_MAX_IMAGE_PIXELS` applies independently to each JPEG and does not bound aggregate frames or decoded pixels. Downstream model limits run after media loading and cannot prevent the split, per-frame allocations, and combined stack.\n\nThe report confirmed this behavior in v0.27.1 (`6e448d0ea9bf3d88d898b65449ca6dc2aec170ac`) and the then-current main revision. The online request-boundary fix is available in v0.31.0.\n\nThe recommended fix is a positive server-enforced maximum frame or aggregate decoded-work budget that is independent of request and startup sampling preferences. On the online API, request `num_frames <= 0` and values above the maximum should be rejected or mapped to the server limit.\n\n### Impact\n\nThis is an availability/resource-exhaustion issue affecting deployments that expose a video-capable multimodal model to inference clients. An actor who can submit a video request can replace the operator's frame setting with `-1` or an attacker-selected large value. Memory consumption then scales with every supplied frame, including individual decoded frame arrays and the combined `np.stack` allocation.\n\nIf `--api-key` is configured, the actor needs a valid inference API key. Without a configured key, the stock `/v1/chat/completions` route has no API-key middleware. I retain the parent advisory's conservative `PR:L` vector.\n\nIn a memory-constrained deployment, a sufficiently large request can cause allocation failure or API/renderer process termination through container or host OOM handling. The retained safe run does not itself demonstrate a service crash. No confidentiality, integrity, or code-execution impact is claimed.\n\n## Affected versions\n\n- Package: `vllm` (PyPI).\n- Affected versions: `>= 0.19.0, < 0.31.0`.\n- First stable patched version: `0.31.0`.\n\nPR #58830 blocks untrusted per-request `mm_processor_kwargs` and `media_io_kwargs` by default before preprocessing. Keep `--trust-request-mm-kwargs` disabled for untrusted clients. Explicitly enabling it restores trusted override behavior; the underlying processor/sampler is not independently bounded by this fix.\n\nAdvisory fixed in [#58830](https://github.com/vllm-project/vllm/pull/58830).","summary":"A client of a vLLM server can send a request-level num_frames of -1 that overrides the server's video frame cap, so every JPEG frame in a video payload is decoded. Memory use then grows with the number of frames supplied, which can exhaust memory on the server.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"vllm","fixed":["0.31.0"],"affected":">= 0.19.0, < 0.31.0","ecosystem":"pypi"}],"ecosystems":["pypi"],"tags":["ai-tooling","cwe-770","llm-serving","python","self-hosted","vllm"],"not_affected_if":["auth-required","text-only-models","trust-request-mm-kwargs-disabled"],"how_to_check":"- Check the installed vLLM version with `pip show vllm` and compare it against the affected range `>= 0.19.0, < 0.31.0`.\n- Check whether the server serves video-capable multimodal models to clients via `/v1/chat/completions`.\n- Check whether `--api-key` is set; without it, the route has no API-key middleware.\n- Check whether `--trust-request-mm-kwargs` is enabled, since the advisory says it restores trusted override behavior.","fix":"- vllm: upgrade to `0.31.0`\n- Keep `--trust-request-mm-kwargs` disabled for untrusted clients (per the advisory, PR #58830 blocks untrusted per-request media kwargs by default)","status":"open","published_at":"2026-10-27T22:22:11+00:00","first_seen_at":"2026-11-09T22:53:23+00:00","triaged_at":"2026-11-09T22:54:42+00:00","updated_at":"2026-11-09T22:54:42+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-09T22:54:42Z","model":"claude-haiku-5-5","output":{"fix":"- vllm: upgrade to `0.31.0`\n- Keep `--trust-request-mm-kwargs` disabled for untrusted clients (per the advisory, PR #58830 blocks untrusted per-request media kwargs by default)","reach":"internet","title":"vLLM: request-level num_frames bypasses video frame limit, allowing memory exhaustion","impact":"medium","summary":"A client of a vLLM server can send a request-level num_frames of -1 that overrides the server's video frame cap, so every JPEG frame in a video payload is decoded. Memory use then grows with the number of frames supplied, which can exhaust memory on the server.","audience":"developers","category":"ai-tooling","nicknames":[],"who_cares":["vllm","python","self-hosted","llm-serving"],"confidence":0.8,"fix_status":"available","needs_auth":"unknown","worst_case":"Server memory exhausted by decoding every supplied video frame, crashing the process","analyst_note":"","how_to_check":"- Check the installed vLLM version with `pip show vllm` and compare it against the affected range `>= 0.19.0, < 0.31.0`.\n- Check whether the server serves video-capable multimodal models to clients via `/v1/chat/completions`.\n- Check whether `--api-key` is set; without it, the route has no API-key middleware.\n- Check whether `--trust-request-mm-kwargs` is enabled, since the advisory says it restores trusted override behavior.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["text-only-models","auth-required","trust-request-mm-kwargs-disabled"],"who_is_affected":"Servers running vLLM 0.19.0 through 0.27.1 (or main before the fix) that accept video requests from clients through the chat completions endpoint are exposed. Deployments that only serve text models, or that are reachable only by trusted callers behind an API key, have a smaller exposure. Teams that already run vLLM 0.31.0 or later are not affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.001058,"input_tokens":6857,"output_tokens":745,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-1':54B,129C,199C,345C,380C,385C,429C '-2026':3A,107C '-34755':4A,108C '-770':30B '/v1/chat/completions':398C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/entrypoints/openai/chat_completion/protocol.py#l364-l370).':262C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/base.py#l65-l80)).':284C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l103-l121)):':318C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l28-l66)).':306C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/renderers/params.py#l99-l122)),':272C '0':323C,334C,343C '256':179C,193C '3.1':225C '34778':448C '38636':99C,450C '6.5':226C '6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce':121C '6e448':567C '8':183C,190C,374C '9h4c':19A,24A 'absenc':475C 'actor':391C 'actor-to-sink':390C 'add':96C 'address':213C 'advisori':217C 'aggreg':536C 'ai':27B 'ai-tool':26B 'all-fram':421C 'alloc':208C,235C,556C 'also':451C 'api':444C 'appli':527C 'assess':219C 'backend':293C 'base':275C 'base64':149C,419C 'behavior':564C 'boun':580C 'bound':257C,535C 'branch':314C 'bypass':8A,233C 'cannot':549C 'cap':62B 'ceil':489C,504C 'chain':394C 'chat':403C 'chatcompletionrequest':133C,259C 'chatcompletionrequest.build':402C 'chatcompletionrequest.media':399C 'chatparams.with':263C,405C 'claim':240C,463C 'clamp':300C 'client':40B,124C,518C 'combin':166C,558C 'comma':161C 'comma-separ':160C 'commit':120C 'confirm':562C 'control':204C 'count':94C 'crash':244C 'current':117C,573C 'cve':2A,106C 'cvss':224C 'cwe':29B 'd0ea9bf3d88d898b65449ca6dc2aec170ac':568C 'data':356C,359C,415C 'data-url':414C 'data.split':326C,349C 'decod':72B,158C,212C,313C,425C,539C 'default':264C,406C 'demonstr':230C 'detail':247C 'disabl':502C 'downstream':541C 'effect':364C,381C,521C 'elif':331C 'els':346C 'engin':144C 'engine-level':143C 'engine/request':267C 'everi':64B,159C 'exact':174C 'exact-path':173C 'exampl':445C 'exhaust':85B 'expos':252C 'field':250C 'follow':312C 'frame':14A,52B,61B,66B,81B,93C,128C,146C,164C,180C,184C,194C,302C,322C,324C,328C,330C,333C,338C,347C,350C,354C,355C,358C,361C,373C,379C,384C,423C,435C,537C,555C 'frame-count':92C 'ghsa':16A,21A,102C,494C 'ghsa-pq5c':493C 'ghsa-pq5c-rjhq-qp7p':101C 'ghsa-vxqj-p4gw-9h4c':15A,20A 'github.com':261C,271C,283C,305C,317C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/entrypoints/openai/chat_completion/protocol.py#l364-l370).':260C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/base.py#l65-l80)).':282C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l103-l121)):':316C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l28-l66)).':304C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/renderers/params.py#l99-l122)),':270C 'give':277C 'gpu':292C 'greater':341C 'grow':76B 'growth':236C 'handl':417C 'host':37B 'imag':525C 'incomplet':1A,110C 'independ':528C 'infer':123C 'intent':433C 'introduc':490C 'io':400C,409C 'issu':221C,472C 'jpeg':65B,163C,424C,531C 'kwarg':286C,401C,410C,412C 'larg':507C 'let':137C 'level':12A,50B,145C,291C 'limit':232C,543C 'linear':205C 'llm':32B 'llm-serv':31B 'load':182C,353C,547C 'low':498C 'low-privileg':497C 'main':118C,574C 'max':524C 'maximum':522C 'media':408C,546C 'media/base.py':281C 'media/video.py':303C,315C 'media_io_kwargs.video.num':127C 'mediaconnector':413C 'memori':73B,86B,207C 'merg':136C,268C,276C,407C 'model':542C 'moder':223C 'must':339C 'negat':153C,455C 'negative-valu':454C 'new':469C 'np.asarray':352C 'np.stack':169C,351C,427C 'num':13A,51B,301C,337C,372C,378C,383C 'number':79B 'numer':255C 'onlin':577C 'oper':482C 'overrid':56B 'p4gw':18A,23A 'param':404C 'parent':216C 'part':325C,348C,362C 'path':175C 'payload':70B,181C 'per':554C 'per-fram':553C 'perform':265C 'pixel':526C,540C 'polici':365C,514C 'posit':508C 'post':397C 'pq5c':103C,495C 'pr':98C,447C,449C 'preced':280C 'prefer':437C,483C 'prevent':550C 'privileg':499C 'problem':515C 'product':135C 'protect':95C 'python':34B,319C 'qp7p':105C 'rais':335C 'rce':246C 'reach':310C 'reject':298C 'remedi':5A,492C 'remov':287C 'renderers/params.py':269C 'replac':141C 'report':460C,561C 'reproduc':242C 'reproduct':176C 'request':11A,49B,139C,197C,203C,249C,290C,375C,500C,509C,579C 'request-boun':578C 'request-control':202C 'request-level':10A,48B,289C 'restor':201C 'result':308C 'retain':452C 'revis':575C 'rjhq':104C 'run':229C,544C 'runtim':278C,443C 'safe':172C,228C 'sampl':436C 'scalabl':206C 'secur':256C,471C 'select':519C 'self':36B 'self-host':35B 'self.num':321C,327C,329C,332C 'send':46B 'sentinel':430C,466C 'separ':162C,479C 'serv':33B 'server':44B,58B,89B,187C,369C,487C 'server-sid':486C 'servic':243C 'set':126C,147C,294C 'shown':440C 'side':488C 'sink':393C 'sourc':388C 'source-trac':387C 'split':552C 'stack':559C 'stock':132C 'summari':90C 'suppli':82B,198C 'test':458C 'text':368C,396C 'then-curr':571C 'therefor':367C 'tool':28B 'trace':389C 'treat':151C 'trust':478C 'unlimit':156C,457C 'unsaf':288C 'url':416C 'use':74B 'v0.19.0':113C 'v0.27.1':115C,566C 'valu':140C,154C,188C,279C,309C,370C,376C,456C,510C 'valueerror':336C 'video':60B,69B,371C,377C,382C 'video/jpeg':150C,420C 'videomediaio.load':148C,418C 'videomediaio.merge':285C,411C 'vllm':25A,38B,43B,112C,523C 'vxqj':17A,22A 'without':253C","nicknames":[],"mitigations":[],"who_affected":"Servers running vLLM 0.19.0 through 0.27.1 (or main before the fix) that accept video requests from clients through the chat completions endpoint are exposed. Deployments that only serve text models, or that are reachable only by trusted callers behind an API key, have a smaller exposure. Teams that already run vLLM 0.31.0 or later are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["vllm"],"ptokens":["vllm"],"labels":["aitooling","cwe770","llmserving","medium","pypi","python","selfhosted","vllm"],"campaign_type":null,"search_a":"'-2026':3A '-34755':4A '9h4c':19A,24A 'bypass':8A 'cve':2A 'frame':14A 'ghsa':16A,21A 'ghsa-vxqj-p4gw-9h4c':15A,20A 'incomplet':1A 'level':12A 'num':13A 'p4gw':18A,23A 'remedi':5A 'request':11A 'request-level':10A 'vllm':25A 'vxqj':17A,22A","search_b":"'-1':54B '-770':30B 'ai':27B 'ai-tool':26B 'cap':62B 'client':40B 'cwe':29B 'decod':72B 'everi':64B 'exhaust':85B 'frame':52B,61B,66B,81B 'grow':76B 'host':37B 'jpeg':65B 'level':50B 'llm':32B 'llm-serv':31B 'memori':73B,86B 'num':51B 'number':79B 'overrid':56B 'payload':70B 'python':34B 'request':49B 'request-level':48B 'self':36B 'self-host':35B 'send':46B 'serv':33B 'server':44B,58B,89B 'suppli':82B 'tool':28B 'use':74B 'video':60B,69B 'vllm':38B,43B","search_c":"'-1':129C,199C,345C,380C,385C,429C '-2026':107C '-34755':108C '/v1/chat/completions':398C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/entrypoints/openai/chat_completion/protocol.py#l364-l370).':262C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/base.py#l65-l80)).':284C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l103-l121)):':318C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l28-l66)).':306C '/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/renderers/params.py#l99-l122)),':272C '0':323C,334C,343C '256':179C,193C '3.1':225C '34778':448C '38636':99C,450C '6.5':226C '6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce':121C '6e448':567C '8':183C,190C,374C 'absenc':475C 'actor':391C 'actor-to-sink':390C 'add':96C 'address':213C 'advisori':217C 'aggreg':536C 'all-fram':421C 'alloc':208C,235C,556C 'also':451C 'api':444C 'appli':527C 'assess':219C 'backend':293C 'base':275C 'base64':149C,419C 'behavior':564C 'boun':580C 'bound':257C,535C 'branch':314C 'bypass':233C 'cannot':549C 'ceil':489C,504C 'chain':394C 'chat':403C 'chatcompletionrequest':133C,259C 'chatcompletionrequest.build':402C 'chatcompletionrequest.media':399C 'chatparams.with':263C,405C 'claim':240C,463C 'clamp':300C 'client':124C,518C 'combin':166C,558C 'comma':161C 'comma-separ':160C 'commit':120C 'confirm':562C 'control':204C 'count':94C 'crash':244C 'current':117C,573C 'cve':106C 'cvss':224C 'd0ea9bf3d88d898b65449ca6dc2aec170ac':568C 'data':356C,359C,415C 'data-url':414C 'data.split':326C,349C 'decod':158C,212C,313C,425C,539C 'default':264C,406C 'demonstr':230C 'detail':247C 'disabl':502C 'downstream':541C 'effect':364C,381C,521C 'elif':331C 'els':346C 'engin':144C 'engine-level':143C 'engine/request':267C 'everi':159C 'exact':174C 'exact-path':173C 'exampl':445C 'expos':252C 'field':250C 'follow':312C 'frame':93C,128C,146C,164C,180C,184C,194C,302C,322C,324C,328C,330C,333C,338C,347C,350C,354C,355C,358C,361C,373C,379C,384C,423C,435C,537C,555C 'frame-count':92C 'ghsa':102C,494C 'ghsa-pq5c':493C 'ghsa-pq5c-rjhq-qp7p':101C 'github.com':261C,271C,283C,305C,317C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/entrypoints/openai/chat_completion/protocol.py#l364-l370).':260C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/base.py#l65-l80)).':282C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l103-l121)):':316C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/multimodal/media/video.py#l28-l66)).':304C 'github.com/vllm-project/vllm/blob/6c95a641e95c0faa6f3aa802d1fd3cce3f3bc3ce/vllm/renderers/params.py#l99-l122)),':270C 'give':277C 'gpu':292C 'greater':341C 'growth':236C 'handl':417C 'imag':525C 'incomplet':110C 'independ':528C 'infer':123C 'intent':433C 'introduc':490C 'io':400C,409C 'issu':221C,472C 'jpeg':163C,424C,531C 'kwarg':286C,401C,410C,412C 'larg':507C 'let':137C 'level':145C,291C 'limit':232C,543C 'linear':205C 'load':182C,353C,547C 'low':498C 'low-privileg':497C 'main':118C,574C 'max':524C 'maximum':522C 'media':408C,546C 'media/base.py':281C 'media/video.py':303C,315C 'media_io_kwargs.video.num':127C 'mediaconnector':413C 'memori':207C 'merg':136C,268C,276C,407C 'model':542C 'moder':223C 'must':339C 'negat':153C,455C 'negative-valu':454C 'new':469C 'np.asarray':352C 'np.stack':169C,351C,427C 'num':301C,337C,372C,378C,383C 'numer':255C 'onlin':577C 'oper':482C 'param':404C 'parent':216C 'part':325C,348C,362C 'path':175C 'payload':181C 'per':554C 'per-fram':553C 'perform':265C 'pixel':526C,540C 'polici':365C,514C 'posit':508C 'post':397C 'pq5c':103C,495C 'pr':98C,447C,449C 'preced':280C 'prefer':437C,483C 'prevent':550C 'privileg':499C 'problem':515C 'product':135C 'protect':95C 'python':319C 'qp7p':105C 'rais':335C 'rce':246C 'reach':310C 'reject':298C 'remedi':492C 'remov':287C 'renderers/params.py':269C 'replac':141C 'report':460C,561C 'reproduc':242C 'reproduct':176C 'request':139C,197C,203C,249C,290C,375C,500C,509C,579C 'request-boun':578C 'request-control':202C 'request-level':289C 'restor':201C 'result':308C 'retain':452C 'revis':575C 'rjhq':104C 'run':229C,544C 'runtim':278C,443C 'safe':172C,228C 'sampl':436C 'scalabl':206C 'secur':256C,471C 'select':519C 'self.num':321C,327C,329C,332C 'sentinel':430C,466C 'separ':162C,479C 'server':187C,369C,487C 'server-sid':486C 'servic':243C 'set':126C,147C,294C 'shown':440C 'side':488C 'sink':393C 'sourc':388C 'source-trac':387C 'split':552C 'stack':559C 'stock':132C 'summari':90C 'suppli':198C 'test':458C 'text':368C,396C 'then-curr':571C 'therefor':367C 'trace':389C 'treat':151C 'trust':478C 'unlimit':156C,457C 'unsaf':288C 'url':416C 'v0.19.0':113C 'v0.27.1':115C,566C 'valu':140C,154C,188C,279C,309C,370C,376C,456C,510C 'valueerror':336C 'video':371C,377C,382C 'video/jpeg':150C,420C 'videomediaio.load':148C,418C 'videomediaio.merge':285C,411C 'vllm':112C,523C 'without':253C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-27T22:22:11+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"ghsa-repo","external_id":"GHSA-vxqj-p4gw-9h4c","url":"https://github.com/vllm-project/vllm/security/advisories/GHSA-vxqj-p4gw-9h4c","severity":"medium","published_at":"2026-10-27T22:22:11+00:00","modified_at":"2026-10-27T22:22:11+00:00","first_seen_at":"2026-11-09T22:53:23+00:00","fetched_at":"2026-11-09T22:53:23+00:00","note":null}],"documents":[{"id":110584,"url":"https://github.com/vllm-project/vllm/security/advisories/GHSA-vxqj-p4gw-9h4c","title":"Maintainer's advisory: github.com","kind":"vendor","source":"ghsa-repo","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Maintainer's advisory: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}