Skip to content

Commit 170bd4b

Browse files
SongTonyLiggerganov
authored andcommitted
server: fix heap-buffer-overflow from negative n_discard (CVE-2026-21869) (ggml-org#22267)
* server: clamp n_discard to non-negative at JSON parse boundary (CVE-2026-21869) A negative n_discard from client JSON causes heap-buffer-overflow in update_slots() context-shift loop (CWE-787, CVSS 8.8). Clamp to 0 at ingress; n_discard=0 already triggers auto-discard (n_left/2). Ref: GHSA-8947-pfff-2f3c * cont : cleaner * cont : cleanerer * cont : cleanest --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
1 parent 4f33166 commit 170bd4b

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

tools/server/server-task.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ task_params server_task::params_from_json_cmpl(
269269
params.n_indent = json_value(data, "n_indent", defaults.n_indent);
270270
params.n_keep = json_value(data, "n_keep", defaults.n_keep);
271271
params.n_discard = json_value(data, "n_discard", defaults.n_discard);
272+
params.n_discard = std::max(0, params.n_discard);
272273
params.n_cmpl = json_value(data, "n_cmpl", json_value(data, "n", 1));
273274
params.n_cache_reuse = json_value(data, "n_cache_reuse", defaults.n_cache_reuse);
274275
//params.t_max_prompt_ms = json_value(data, "t_max_prompt_ms", defaults.t_max_prompt_ms); // TODO: implement

0 commit comments

Comments
 (0)